From 0657621be847a42cba00a2489b6411a625c444fc Mon Sep 17 00:00:00 2001 From: rmn-boiko Date: Wed, 16 Oct 2024 17:02:34 +0200 Subject: [PATCH] Add push test from registered repo --- .../tests/test_smart_transfer_protocol.rs | 11 +++ .../src/test_smart_transfer_protocol.rs | 70 +++++++++++++++++++ 2 files changed, 81 insertions(+) diff --git a/src/e2e/app/cli/inmem/tests/tests/test_smart_transfer_protocol.rs b/src/e2e/app/cli/inmem/tests/tests/test_smart_transfer_protocol.rs index 4dd8081a0..80f5f28cd 100644 --- a/src/e2e/app/cli/inmem/tests/tests/test_smart_transfer_protocol.rs +++ b/src/e2e/app/cli/inmem/tests/tests/test_smart_transfer_protocol.rs @@ -125,3 +125,14 @@ kamu_cli_execute_command_e2e_test!( ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +kamu_cli_run_api_server_e2e_test!( + storage = inmem, + fixture = kamu_cli_e2e_repo_tests::test_smart_push_from_registered_repo, + options = Options::default() + .with_multi_tenant() + .with_today_as_frozen_system_time(), + extra_test_groups = "engine, ingest, datafusion" +); + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/e2e/app/cli/repo-tests/src/test_smart_transfer_protocol.rs b/src/e2e/app/cli/repo-tests/src/test_smart_transfer_protocol.rs index c8d47cab9..280ac2e21 100644 --- a/src/e2e/app/cli/repo-tests/src/test_smart_transfer_protocol.rs +++ b/src/e2e/app/cli/repo-tests/src/test_smart_transfer_protocol.rs @@ -1283,3 +1283,73 @@ pub async fn test_smart_pull_derivative(kamu: KamuCliPuppet) { } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +pub async fn test_smart_push_from_registered_repo(kamu_api_server_client: KamuApiServerClient) { + let dataset_alias = DatasetAlias::new( + Some(AccountName::new_unchecked("e2e-user")), + DatasetName::new_unchecked("player-scores"), + ); + let kamu_api_server_dataset_endpoint = + kamu_api_server_client.get_dataset_endpoint(&dataset_alias); + + // 1. Grub a token + let token = kamu_api_server_client.login_as_e2e_user().await; + + // 2. Pushing the dataset to the API server + { + let kamu_in_push_workspace = KamuCliPuppet::new_workspace_tmp().await; + + // 2.1. Add the dataset + { + kamu_in_push_workspace + .execute_with_input(["add", "--stdin"], DATASET_ROOT_PLAYER_SCORES_SNAPSHOT_STR) + .await + .success(); + } + + // 2.1. Ingest data to the dataset + { + kamu_in_push_workspace + .ingest_data( + &dataset_alias.dataset_name, + DATASET_ROOT_PLAYER_SCORES_INGEST_DATA_NDJSON_CHUNK_1, + ) + .await; + } + + // 2.2. Login to the API server + kamu_in_push_workspace + .execute([ + "login", + kamu_api_server_client.get_base_url().as_str(), + "--access-token", + token.as_str(), + ]) + .await + .success(); + + // 2.3. Push the dataset to the API server without too argument + kamu_in_push_workspace + .assert_success_command_execution( + ["push", dataset_alias.dataset_name.as_str()], + None, + Some(["1 dataset(s) pushed"]), + ) + .await; + } + + // 3. Pulling the dataset from the API server + { + let kamu_in_pull_workspace = KamuCliPuppet::new_workspace_tmp().await; + + kamu_in_pull_workspace + .assert_success_command_execution( + ["pull", kamu_api_server_dataset_endpoint.as_str()], + None, + Some(["1 dataset(s) updated"]), + ) + .await; + } +} + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////