diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e8572889..7f84221f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -93,7 +93,6 @@ jobs: env: SQLX_OFFLINE: false DATABASE_URL: sqlite://kamu.sqlite.db - # platform(target) is a workaround for Windows only issue in cargo-nextest upon proc macro crates run: cargo nextest run ${{ env.NEXTEST_FLAGS }} -E 'platform(target) & test(::sqlite::)' - name: Postgres database tests diff --git a/Cargo.lock b/Cargo.lock index e088a9b5..7b342245 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5999,7 +5999,6 @@ dependencies = [ "assert_cmd", "async-trait", "indoc 2.0.5", - "pretty_assertions", "serde", "tempfile", "tokio", diff --git a/Makefile b/Makefile index c8e35c13..dd027194 100644 --- a/Makefile +++ b/Makefile @@ -43,17 +43,17 @@ echo "SQLX_OFFLINE=false" >> $(2)/.env; endef .PHONY: sqlx-local-setup -sqlx-local-setup: sqlx-local-setup-postgres sqlx-local-setup-mariadb sqlx-local-setup-sqlite +sqlx-local-setup: sqlx-local-setup-postgres sqlx-local-setup-sqlite .PHONY: sqlx-local-setup-postgres sqlx-local-setup-postgres: $(KAMU_CONTAINER_RUNTIME_TYPE) pull postgres:latest - $(KAMU_CONTAINER_RUNTIME_TYPE) stop kamu-postgres || true && $(KAMU_CONTAINER_RUNTIME_TYPE) rm kamu-postgres || true - $(KAMU_CONTAINER_RUNTIME_TYPE) run --name kamu-postgres -p 5432:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=root -d postgres:latest - $(foreach crate,$(POSTGRES_CRATES),$(call Setup_EnvFile,postgres,5432,$(crate))) + $(KAMU_CONTAINER_RUNTIME_TYPE) stop kamu-node-postgres || true && $(KAMU_CONTAINER_RUNTIME_TYPE) rm kamu-node-postgres || true + $(KAMU_CONTAINER_RUNTIME_TYPE) run --name kamu-node-postgres -p 5433:5432 -e POSTGRES_USER=root -e POSTGRES_PASSWORD=root -d postgres:latest + $(foreach crate,$(POSTGRES_CRATES),$(call Setup_EnvFile,postgres,5433,$(crate))) sleep 3 # Letting the container to start - until PGPASSWORD=root psql -h localhost -U root -p 5432 -d root -c '\q'; do sleep 3; done - sqlx database create --database-url postgres://root:root@localhost:5432/kamu + until PGPASSWORD=root psql -h localhost -U root -p 5433 -d root -c '\q'; do sleep 3; done + sqlx database create --database-url postgres://root:root@localhost:5433/kamu .PHONY: sqlx-local-setup-sqlite sqlx-local-setup-sqlite: @@ -63,7 +63,7 @@ sqlx-local-setup-sqlite: .PHONY: sqlx-local-clean-postgres sqlx-local-clean-postgres: - $(KAMU_CONTAINER_RUNTIME_TYPE) stop kamu-postgres || true && $(KAMU_CONTAINER_RUNTIME_TYPE) rm kamu-postgres || true + $(KAMU_CONTAINER_RUNTIME_TYPE) stop kamu-node-postgres || true && $(KAMU_CONTAINER_RUNTIME_TYPE) rm kamu-node-postgres || true $(foreach crate,$(POSTGRES_CRATES),rm $(crate)/.env -f ;) .PHONY: sqlx-local-clean-sqlite diff --git a/resources/openapi-mt.json b/resources/openapi-mt.json index ab21b602..0034b96c 100644 --- a/resources/openapi-mt.json +++ b/resources/openapi-mt.json @@ -942,9 +942,20 @@ ] } }, - "/odata": { + "/odata/{account_name}": { "get": { - "operationId": "odata_service_handler_st", + "operationId": "odata_service_handler_mt", + "parameters": [ + { + "description": "Account name", + "in": "path", + "name": "account_name", + "required": true, + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "content": { @@ -969,9 +980,20 @@ ] } }, - "/odata/$metadata": { + "/odata/{account_name}/$metadata": { "get": { - "operationId": "odata_metadata_handler_st", + "operationId": "odata_metadata_handler_mt", + "parameters": [ + { + "description": "Account name", + "in": "path", + "name": "account_name", + "required": true, + "schema": { + "type": "string" + } + } + ], "responses": { "200": { "content": { @@ -996,10 +1018,19 @@ ] } }, - "/odata/{dataset_name}": { + "/odata/{account_name}/{dataset_name}": { "get": { - "operationId": "odata_collection_handler_st", + "operationId": "odata_collection_handler_mt", "parameters": [ + { + "description": "Account name", + "in": "path", + "name": "account_name", + "required": true, + "schema": { + "type": "string" + } + }, { "description": "Dataset name", "in": "path", @@ -1473,7 +1504,7 @@ ] } }, - "/{dataset_name}/blocks/{block_hash}": { + "/{account_name}/{dataset_name}/blocks/{block_hash}": { "get": { "operationId": "dataset_blocks_handler", "parameters": [ @@ -1529,7 +1560,7 @@ ] } }, - "/{dataset_name}/checkpoints/{physical_hash}": { + "/{account_name}/{dataset_name}/checkpoints/{physical_hash}": { "get": { "operationId": "dataset_checkpoints_get_handler", "parameters": [ @@ -1654,7 +1685,7 @@ ] } }, - "/{dataset_name}/data/{physical_hash}": { + "/{account_name}/{dataset_name}/data/{physical_hash}": { "get": { "operationId": "dataset_data_get_handler", "parameters": [ @@ -1779,7 +1810,7 @@ ] } }, - "/{dataset_name}/ingest": { + "/{account_name}/{dataset_name}/ingest": { "post": { "operationId": "dataset_ingest_handler", "parameters": [ @@ -1856,7 +1887,7 @@ ] } }, - "/{dataset_name}/metadata": { + "/{account_name}/{dataset_name}/metadata": { "get": { "operationId": "dataset_metadata_handler", "parameters": [ @@ -1921,7 +1952,7 @@ ] } }, - "/{dataset_name}/pull": { + "/{account_name}/{dataset_name}/pull": { "get": { "operationId": "dataset_pull_ws_upgrade_handler", "parameters": [ @@ -1968,7 +1999,7 @@ ] } }, - "/{dataset_name}/push": { + "/{account_name}/{dataset_name}/push": { "get": { "operationId": "dataset_push_ws_upgrade_handler", "parameters": [ @@ -2015,7 +2046,7 @@ ] } }, - "/{dataset_name}/refs/{reference}": { + "/{account_name}/{dataset_name}/refs/{reference}": { "get": { "operationId": "dataset_refs_handler", "parameters": [ @@ -2071,7 +2102,7 @@ ] } }, - "/{dataset_name}/tail": { + "/{account_name}/{dataset_name}/tail": { "get": { "operationId": "dataset_tail_handler", "parameters": [ diff --git a/src/e2e/app/common-macros/src/lib.rs b/src/e2e/app/common-macros/src/lib.rs index e651ce32..bcb71383 100644 --- a/src/e2e/app/common-macros/src/lib.rs +++ b/src/e2e/app/common-macros/src/lib.rs @@ -53,15 +53,6 @@ fn kamu_node_e2e_test_impl(harness_method: &Ident, input: TokenStream) -> TokenS .await; } }, - "mysql" => quote! { - #[test_group::group(e2e, database, mysql, #extra_test_groups)] - #[test_log::test(sqlx::test(migrator = "database_common::MYSQL_MIGRATOR"))] - async fn #test_function_name (mysql_pool: sqlx::MySqlPool) { - KamuNodeApiServerHarness::mysql(&mysql_pool, #options ) - . #harness_method ( #fixture ) - .await; - } - }, "sqlite" => quote! { #[test_group::group(e2e, database, sqlite, #extra_test_groups)] #[test_log::test(sqlx::test(migrator = "database_common::SQLITE_MIGRATOR"))] @@ -73,8 +64,8 @@ fn kamu_node_e2e_test_impl(harness_method: &Ident, input: TokenStream) -> TokenS }, unexpected => { panic!( - "Unexpected E2E test storage: \"{unexpected}\"!\nAllowable values: \"postgres\", \ - \"mysql\", and \"sqlite\"." + "Unexpected E2E test storage: \"{unexpected}\"!\nAllowable values: \"postgres\" \ + and \"sqlite\"." ); } }; diff --git a/src/e2e/app/common/Cargo.toml b/src/e2e/app/common/Cargo.toml index ecab34b0..2d197d7c 100644 --- a/src/e2e/app/common/Cargo.toml +++ b/src/e2e/app/common/Cargo.toml @@ -43,7 +43,6 @@ serde_urlencoded = { version = "0.7" } serde_yaml = { version = "0.9" } sqlx = { version = "0.8", default-features = false, features = [ "postgres", - "mysql", "sqlite", ] } thiserror = { version = "2", default-features = false } diff --git a/src/e2e/app/common/src/e2e_harness.rs b/src/e2e/app/common/src/e2e_harness.rs index be2c099b..8e7c5cce 100644 --- a/src/e2e/app/common/src/e2e_harness.rs +++ b/src/e2e/app/common/src/e2e_harness.rs @@ -12,7 +12,7 @@ use std::future::Future; use kamu_node_puppet::extensions::KamuNodePuppetExt; use kamu_node_puppet::{KamuNodePuppet, NewWorkspaceOptions}; use regex::Regex; -use sqlx::{MySqlPool, PgPool, SqlitePool}; +use sqlx::{PgPool, SqlitePool}; use crate::{api_server_e2e_test, KamuApiServerClient}; @@ -22,7 +22,6 @@ use crate::{api_server_e2e_test, KamuApiServerClient}; pub struct KamuNodeApiServerHarnessOptions { env_vars: Vec<(String, String)>, kamu_config: Option, - is_multi_tenant: bool, } impl KamuNodeApiServerHarnessOptions { @@ -31,12 +30,6 @@ impl KamuNodeApiServerHarnessOptions { self } - - pub fn with_multi_tenant(mut self) -> Self { - self.is_multi_tenant = true; - - self - } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -69,29 +62,6 @@ impl KamuNodeApiServerHarness { Self::new(options, Some(kamu_config)) } - pub fn mysql(mysql_pool: &MySqlPool, options: KamuNodeApiServerHarnessOptions) -> Self { - let db = mysql_pool.connect_options(); - let kamu_config = indoc::formatdoc!( - r#" - database: - provider: mySql - host: {host} - credentialsPolicy: - source: - kind: rawPassword - userName: {user} - rawPassword: {password} - databaseName: {database} - "#, - host = db.get_host(), - user = db.get_username(), - password = db.get_username(), // It's intended: password is same as user for tests - database = db.get_database().unwrap(), - ); - - Self::new(options, Some(kamu_config)) - } - pub fn sqlite(sqlite_pool: &SqlitePool, options: KamuNodeApiServerHarnessOptions) -> Self { // Ugly way to get the path as the settings have a not-so-good signature: // SqliteConnectOptions::get_filename(self) -> Cow<'static, Path> @@ -142,11 +112,10 @@ impl KamuNodeApiServerHarness { Fixture: FnOnce(KamuApiServerClient) -> FixtureResult, FixtureResult: Future + Send + 'static, { - let is_multi_tenant = self.options.is_multi_tenant; let kamu = self.into_kamu(); let e2e_data_file_path = kamu.get_e2e_output_data_path(); - let server_run_fut = kamu.start_api_server(e2e_data_file_path.clone(), is_multi_tenant); + let server_run_fut = kamu.start_api_server(e2e_data_file_path.clone()); api_server_e2e_test(e2e_data_file_path, server_run_fut, fixture).await; } diff --git a/src/e2e/app/kamu-node-puppet/Cargo.toml b/src/e2e/app/kamu-node-puppet/Cargo.toml index 5e91b3bc..5a026607 100644 --- a/src/e2e/app/kamu-node-puppet/Cargo.toml +++ b/src/e2e/app/kamu-node-puppet/Cargo.toml @@ -26,7 +26,6 @@ extensions = [ # External "dep:async-trait", "dep:indoc", - "dep:pretty_assertions", "dep:serde", ] @@ -39,7 +38,6 @@ tokio = { version = "1", default-features = false, features = ["rt"] } async-trait = { optional = true, version = "0.1" } indoc = { optional = true, version = "2" } -pretty_assertions = { optional = true, version = "1" } serde = { optional = true, version = "1", default-features = false, features = [ "derive", ] } diff --git a/src/e2e/app/kamu-node-puppet/src/kamu_node_puppet.rs b/src/e2e/app/kamu-node-puppet/src/kamu_node_puppet.rs index f8e3fe85..2502a629 100644 --- a/src/e2e/app/kamu-node-puppet/src/kamu_node_puppet.rs +++ b/src/e2e/app/kamu-node-puppet/src/kamu_node_puppet.rs @@ -44,6 +44,12 @@ impl KamuNodePuppet { r#" repo: repoUrl: {path} + auth: + providers: + - kind: password + accounts: + - accountName: kamu + email: kamu@example.com "#, path = dataset_path.display() )); diff --git a/src/e2e/app/kamu-node-puppet/src/kamu_node_puppet_ext.rs b/src/e2e/app/kamu-node-puppet/src/kamu_node_puppet_ext.rs index 2b6ea49a..f00951ea 100644 --- a/src/e2e/app/kamu-node-puppet/src/kamu_node_puppet_ext.rs +++ b/src/e2e/app/kamu-node-puppet/src/kamu_node_puppet_ext.rs @@ -12,117 +12,34 @@ use std::path::PathBuf; use async_trait::async_trait; -use crate::{ExecuteCommandResult, KamuNodePuppet}; +use crate::KamuNodePuppet; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #[async_trait] pub trait KamuNodePuppetExt { - async fn assert_success_command_execution( - &self, - cmd: I, - maybe_expected_stdout: Option<&str>, - maybe_expected_stderr: Option + Send>, - ) where - I: IntoIterator + Send, - S: AsRef; - - async fn assert_success_command_execution_with_input( - &self, - cmd: I, - input: T, - maybe_expected_stdout: Option<&str>, - maybe_expected_stderr: Option + Send>, - ) where - I: IntoIterator + Send, - S: AsRef, - T: Into> + Send; - - async fn assert_success_command_execution_with_env( - &self, - cmd: I, - env_vars: Vec<(&std::ffi::OsStr, &std::ffi::OsStr)>, - maybe_expected_stdout: Option<&str>, - maybe_expected_stderr: Option + Send>, - ) where - I: IntoIterator + Send, - S: AsRef; - - async fn assert_failure_command_execution( - &self, - cmd: I, - maybe_expected_stdout: Option<&str>, - maybe_expected_stderr: Option + Send>, - ) where - I: IntoIterator + Send, - S: AsRef; - - async fn assert_failure_command_execution_with_input( - &self, - cmd: I, - input: T, - maybe_expected_stdout: Option<&str>, - maybe_expected_stderr: Option + Send>, - ) where - I: IntoIterator + Send, - S: AsRef, - T: Into> + Send; - - async fn complete(&self, input: T, current: usize) -> Vec - where - T: Into + Send; - - async fn start_api_server( - self, - e2e_data_file_path: PathBuf, - is_multi_tenant: bool, - ) -> ServerOutput; + async fn start_api_server(self, e2e_data_file_path: PathBuf) -> ServerOutput; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #[async_trait] impl KamuNodePuppetExt for KamuNodePuppet { - async fn complete(&self, input: T, current: usize) -> Vec - where - T: Into + Send, - { + async fn start_api_server(self, e2e_data_file_path: PathBuf) -> ServerOutput { + let host = Ipv4Addr::LOCALHOST.to_string(); + let assert = self .execute([ - "complete", - input.into().as_str(), - current.to_string().as_str(), + "--multi-tenant", + "--e2e-output-data-path", + e2e_data_file_path.to_str().unwrap(), + "run", + "--address", + host.as_str(), ]) .await .success(); - let stdout = std::str::from_utf8(&assert.get_output().stdout).unwrap(); - - stdout.lines().map(ToString::to_string).collect() - } - - async fn start_api_server( - self, - e2e_data_file_path: PathBuf, - is_multi_tenant: bool, - ) -> ServerOutput { - let host = Ipv4Addr::LOCALHOST.to_string(); - - let mut args = if is_multi_tenant { - vec!["--multi-tenant"] - } else { - vec![] - }; - args.extend(vec![ - "--e2e-output-data-path", - e2e_data_file_path.to_str().unwrap(), - "run", - "--address", - host.as_str(), - ]); - - let assert = self.execute(args).await.success(); - let stdout = std::str::from_utf8(&assert.get_output().stdout) .unwrap() .to_owned(); @@ -132,91 +49,6 @@ impl KamuNodePuppetExt for KamuNodePuppet { ServerOutput { stdout, stderr } } - - async fn assert_success_command_execution( - &self, - cmd: I, - maybe_expected_stdout: Option<&str>, - maybe_expected_stderr: Option + Send>, - ) where - I: IntoIterator + Send, - S: AsRef, - { - assert_execute_command_result( - &self.execute(cmd).await.success(), - maybe_expected_stdout, - maybe_expected_stderr, - ); - } - - async fn assert_success_command_execution_with_input( - &self, - cmd: I, - input: T, - maybe_expected_stdout: Option<&str>, - maybe_expected_stderr: Option + Send>, - ) where - I: IntoIterator + Send, - S: AsRef, - T: Into> + Send, - { - assert_execute_command_result( - &self.execute_with_input(cmd, input).await.success(), - maybe_expected_stdout, - maybe_expected_stderr, - ); - } - - async fn assert_success_command_execution_with_env( - &self, - cmd: I, - env_vars: Vec<(&std::ffi::OsStr, &std::ffi::OsStr)>, - maybe_expected_stdout: Option<&str>, - maybe_expected_stderr: Option + Send>, - ) where - I: IntoIterator + Send, - S: AsRef, - { - assert_execute_command_result( - &self.execute_with_env(cmd, env_vars).await.success(), - maybe_expected_stdout, - maybe_expected_stderr, - ); - } - - async fn assert_failure_command_execution( - &self, - cmd: I, - maybe_expected_stdout: Option<&str>, - maybe_expected_stderr: Option + Send>, - ) where - I: IntoIterator + Send, - S: AsRef, - { - assert_execute_command_result( - &self.execute(cmd).await.failure(), - maybe_expected_stdout, - maybe_expected_stderr, - ); - } - - async fn assert_failure_command_execution_with_input( - &self, - cmd: I, - input: T, - maybe_expected_stdout: Option<&str>, - maybe_expected_stderr: Option + Send>, - ) where - I: IntoIterator + Send, - S: AsRef, - T: Into> + Send, - { - assert_execute_command_result( - &self.execute_with_input(cmd, input).await.failure(), - maybe_expected_stdout, - maybe_expected_stderr, - ); - } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -227,28 +59,3 @@ pub struct ServerOutput { } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -fn assert_execute_command_result<'a>( - command_result: &ExecuteCommandResult, - maybe_expected_stdout: Option<&str>, - maybe_expected_stderr: Option>, -) { - let actual_stdout = std::str::from_utf8(&command_result.get_output().stdout).unwrap(); - - if let Some(expected_stdout) = maybe_expected_stdout { - pretty_assertions::assert_eq!(expected_stdout, actual_stdout); - } - - if let Some(expected_stderr_items) = maybe_expected_stderr { - let stderr = std::str::from_utf8(&command_result.get_output().stderr).unwrap(); - - for expected_stderr_item in expected_stderr_items { - assert!( - stderr.contains(expected_stderr_item), - "Expected output:\n{expected_stderr_item}\nUnexpected output:\n{stderr}", - ); - } - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/e2e/app/postgres/tests/tests/test_auth.rs b/src/e2e/app/postgres/tests/tests/test_auth.rs index 90f45707..a68a0f9d 100644 --- a/src/e2e/app/postgres/tests/tests/test_auth.rs +++ b/src/e2e/app/postgres/tests/tests/test_auth.rs @@ -18,36 +18,9 @@ kamu_node_run_api_server_e2e_test!( //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -kamu_node_run_api_server_e2e_test!( - storage = postgres, - fixture = kamu_node_e2e_repo_tests::test_login_password_predefined_successful, - options = Options::default().with_kamu_config(indoc::indoc!( - r#" - auth: - providers: - - kind: password - accounts: - - accountName: kamu - email: kamu@example.com - "# - )) -); - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - kamu_node_run_api_server_e2e_test!( storage = postgres, fixture = kamu_node_e2e_repo_tests::test_kamu_access_token_middleware, - options = Options::default().with_kamu_config(indoc::indoc!( - r#" - auth: - providers: - - kind: password - accounts: - - accountName: kamu - email: kamu@example.com - "# - )) ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -55,16 +28,6 @@ kamu_node_run_api_server_e2e_test!( kamu_node_run_api_server_e2e_test!( storage = postgres, fixture = kamu_node_e2e_repo_tests::test_token_validate, - options = Options::default().with_kamu_config(indoc::indoc!( - r#" - auth: - providers: - - kind: password - accounts: - - accountName: kamu - email: kamu@example.com - "# - )) ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -72,16 +35,6 @@ kamu_node_run_api_server_e2e_test!( kamu_node_run_api_server_e2e_test!( storage = postgres, fixture = kamu_node_e2e_repo_tests::test_login_via_rest_password, - options = Options::default().with_kamu_config(indoc::indoc!( - r#" - auth: - providers: - - kind: password - accounts: - - accountName: kamu - email: kamu@example.com - "# - )) ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -89,16 +42,6 @@ kamu_node_run_api_server_e2e_test!( kamu_node_run_api_server_e2e_test!( storage = postgres, fixture = kamu_node_e2e_repo_tests::test_login_via_rest_unauthorized, - options = Options::default().with_kamu_config(indoc::indoc!( - r#" - auth: - providers: - - kind: password - accounts: - - accountName: kamu - email: kamu@example.com - "# - )) ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/e2e/app/postgres/tests/tests/test_odf_core.rs b/src/e2e/app/postgres/tests/tests/test_odf_core.rs index df5d9e5f..9d378d5a 100644 --- a/src/e2e/app/postgres/tests/tests/test_odf_core.rs +++ b/src/e2e/app/postgres/tests/tests/test_odf_core.rs @@ -11,17 +11,9 @@ use kamu_node_e2e_common::prelude::*; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -kamu_node_run_api_server_e2e_test!( - storage = postgres, - fixture = kamu_node_e2e_repo_tests::test_odf_info_st, -); - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - kamu_node_run_api_server_e2e_test!( storage = postgres, fixture = kamu_node_e2e_repo_tests::test_odf_info_mt, - options = Options::default().with_multi_tenant() ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/e2e/app/repo-tests/src/test_auth.rs b/src/e2e/app/repo-tests/src/test_auth.rs index 116c122b..7bd831bc 100644 --- a/src/e2e/app/repo-tests/src/test_auth.rs +++ b/src/e2e/app/repo-tests/src/test_auth.rs @@ -19,43 +19,6 @@ use serde_json::json; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -pub async fn test_login_password_predefined_successful( - kamu_api_server_client: KamuApiServerClient, -) { - kamu_api_server_client - .graphql_api_call_assert( - indoc::indoc!( - r#" - mutation { - auth { - login(loginMethod: "password", loginCredentialsJson: "{\"login\":\"kamu\",\"password\":\"kamu\"}") { - account { - accountName - } - } - } - } - "#, - ), - Ok(indoc::indoc!( - r#" - { - "auth": { - "login": { - "account": { - "accountName": "kamu" - } - } - } - } - "#, - )), - ) - .await; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - pub async fn test_login_enabled_methods(kamu_api_server_client: KamuApiServerClient) { kamu_api_server_client .graphql_api_call_assert( diff --git a/src/e2e/app/repo-tests/src/test_dataset.rs b/src/e2e/app/repo-tests/src/test_dataset.rs index 271c849f..c57a0421 100644 --- a/src/e2e/app/repo-tests/src/test_dataset.rs +++ b/src/e2e/app/repo-tests/src/test_dataset.rs @@ -48,12 +48,6 @@ pub async fn test_datasets_by_id(mut kamu_api_server_client: KamuApiServerClient .create_player_scores_dataset() .await; - // let expected_owner = DatasetOwnerInfo { - // account_name: odf::AccountName::new_unchecked("kamu"), - // // TODO: Private Datasets: replace with account id - // account_id: None, - // }; - assert_matches!( kamu_api_server_client.dataset().by_id(&dataset_id).await, Ok(DatasetInfoResponse { @@ -62,7 +56,7 @@ pub async fn test_datasets_by_id(mut kamu_api_server_client: KamuApiServerClient dataset_name }) if id == dataset_id - && owner.is_none() // TODO: Private Datasets: use expected_owner + && owner.is_some() && dataset_name == odf::DatasetName::new_unchecked("player-scores") ); } diff --git a/src/e2e/app/repo-tests/src/test_odf_core.rs b/src/e2e/app/repo-tests/src/test_odf_core.rs index bafc2102..f1b4f168 100644 --- a/src/e2e/app/repo-tests/src/test_odf_core.rs +++ b/src/e2e/app/repo-tests/src/test_odf_core.rs @@ -14,29 +14,10 @@ use kamu_node_e2e_common::{KamuApiServerClient, KamuApiServerClientExt}; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -pub async fn test_odf_info_st(kamu_api_server_client: KamuApiServerClient) { - test_odf_info(kamu_api_server_client, false).await; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - pub async fn test_odf_info_mt(kamu_api_server_client: KamuApiServerClient) { - test_odf_info(kamu_api_server_client, true).await; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Implementations -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -async fn test_odf_info( - kamu_api_server_client: KamuApiServerClient, - expected_is_multi_tenant: bool, -) { assert_matches!( kamu_api_server_client.odf_core().info().await, Ok(NodeInfoResponse { is_multi_tenant }) - if is_multi_tenant == expected_is_multi_tenant + if is_multi_tenant ); } - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/e2e/app/repo-tests/src/test_openapi.rs b/src/e2e/app/repo-tests/src/test_openapi.rs index dbd029fc..c03871ef 100644 --- a/src/e2e/app/repo-tests/src/test_openapi.rs +++ b/src/e2e/app/repo-tests/src/test_openapi.rs @@ -26,12 +26,6 @@ async fn test_openapi(kamu_api_server_client: KamuApiServerClient, schema_path: std::fs::write(&schema_path, &schema).unwrap(); } -pub async fn test_openapi_st(kamu_api_server_client: KamuApiServerClient) { - let mut schema_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - schema_path.push("../../../../resources/openapi.json"); - test_openapi(kamu_api_server_client, schema_path).await; -} - pub async fn test_openapi_mt(kamu_api_server_client: KamuApiServerClient) { let mut schema_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); schema_path.push("../../../../resources/openapi-mt.json"); diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_accounts/g441b/e2e/database/sqlite/test_accounts_me_e2e_user.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_accounts/g441b/e2e/database/sqlite/test_accounts_me_e2e_user.sqlite deleted file mode 100644 index e9667b95..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_accounts/g441b/e2e/database/sqlite/test_accounts_me_e2e_user.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g039b/e2e/database/sqlite/test_login_password_predefined_successful.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g039b/e2e/database/sqlite/test_login_password_predefined_successful.sqlite deleted file mode 100644 index e9ac3d43..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g039b/e2e/database/sqlite/test_login_password_predefined_successful.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g0df2/e2e/database/sqlite/test_login_dummy_github.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g0df2/e2e/database/sqlite/test_login_dummy_github.sqlite deleted file mode 100644 index b0c91bbf..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g0df2/e2e/database/sqlite/test_login_dummy_github.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g240d/e2e/database/sqlite/test_login_dummy_github.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g240d/e2e/database/sqlite/test_login_dummy_github.sqlite deleted file mode 100644 index b989a3d7..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g240d/e2e/database/sqlite/test_login_dummy_github.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g2e0b/e2e/database/sqlite/test_login_dummy_github.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g2e0b/e2e/database/sqlite/test_login_dummy_github.sqlite deleted file mode 100644 index 5aeb5e11..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g2e0b/e2e/database/sqlite/test_login_dummy_github.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g4b7b/e2e/database/sqlite/test_login_password_predefined_successful.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g4b7b/e2e/database/sqlite/test_login_password_predefined_successful.sqlite deleted file mode 100644 index 3228dd1e..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g4b7b/e2e/database/sqlite/test_login_password_predefined_successful.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g572c/e2e/database/sqlite/test_login_password_predefined_successful.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g572c/e2e/database/sqlite/test_login_password_predefined_successful.sqlite deleted file mode 100644 index 0be90403..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g572c/e2e/database/sqlite/test_login_password_predefined_successful.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g6bbd/e2e/database/sqlite/test_login_password_predefined_successful.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g6bbd/e2e/database/sqlite/test_login_password_predefined_successful.sqlite deleted file mode 100644 index 2ec34ce1..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g6bbd/e2e/database/sqlite/test_login_password_predefined_successful.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g858a/e2e/database/sqlite/test_login_dummy_github.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g858a/e2e/database/sqlite/test_login_dummy_github.sqlite deleted file mode 100644 index 1a9d7c60..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/g858a/e2e/database/sqlite/test_login_dummy_github.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/gd3a4/e2e/database/sqlite/test_login_password_predefined_successful.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/gd3a4/e2e/database/sqlite/test_login_password_predefined_successful.sqlite deleted file mode 100644 index 8fd33460..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/gd3a4/e2e/database/sqlite/test_login_password_predefined_successful.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/gfdc5/e2e/database/sqlite/test_login_dummy_github.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/gfdc5/e2e/database/sqlite/test_login_dummy_github.sqlite deleted file mode 100644 index 604d6981..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_auth/gfdc5/e2e/database/sqlite/test_login_dummy_github.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_core/g7eb0/e2e/database/sqlite/test_odf_info_mt.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_core/g7eb0/e2e/database/sqlite/test_odf_info_mt.sqlite deleted file mode 100644 index 2cfe44bb..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_core/g7eb0/e2e/database/sqlite/test_odf_info_mt.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/g83fb/e2e/database/sqlite/test_verify.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/g83fb/e2e/database/sqlite/test_verify.sqlite deleted file mode 100644 index b4bf8abf..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/g83fb/e2e/database/sqlite/test_verify.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/ga112/e2e/database/sqlite/engine/datafusion/test_dataset_tail_mt.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/ga112/e2e/database/sqlite/engine/datafusion/test_dataset_tail_mt.sqlite deleted file mode 100644 index a32b3543..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/ga112/e2e/database/sqlite/engine/datafusion/test_dataset_tail_mt.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/ge62c/e2e/database/sqlite/engine/datafusion/test_dataset_tail_st.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/ge62c/e2e/database/sqlite/engine/datafusion/test_dataset_tail_st.sqlite deleted file mode 100644 index e06795b4..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/ge62c/e2e/database/sqlite/engine/datafusion/test_dataset_tail_st.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/gf242/e2e/database/sqlite/test_dataset_metadata_mt.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/gf242/e2e/database/sqlite/test_dataset_metadata_mt.sqlite deleted file mode 100644 index 35885a72..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_odf_query/gf242/e2e/database/sqlite/test_dataset_metadata_mt.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_swagger/g254f/e2e/database/sqlite/test_swagger_schema_st.sqlite b/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_swagger/g254f/e2e/database/sqlite/test_swagger_schema_st.sqlite deleted file mode 100644 index 8c4ec84e..00000000 Binary files a/src/e2e/app/sqlite/target/sqlx/test-dbs/r#mod/tests/test_swagger/g254f/e2e/database/sqlite/test_swagger_schema_st.sqlite and /dev/null differ diff --git a/src/e2e/app/sqlite/tests/tests/test_auth.rs b/src/e2e/app/sqlite/tests/tests/test_auth.rs index 1b67dcbb..59f0d718 100644 --- a/src/e2e/app/sqlite/tests/tests/test_auth.rs +++ b/src/e2e/app/sqlite/tests/tests/test_auth.rs @@ -18,36 +18,9 @@ kamu_node_run_api_server_e2e_test!( //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -kamu_node_run_api_server_e2e_test!( - storage = sqlite, - fixture = kamu_node_e2e_repo_tests::test_login_password_predefined_successful, - options = Options::default().with_kamu_config(indoc::indoc!( - r#" - auth: - providers: - - kind: password - accounts: - - accountName: kamu - email: kamu@example.com - "# - )) -); - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - kamu_node_run_api_server_e2e_test!( storage = sqlite, fixture = kamu_node_e2e_repo_tests::test_kamu_access_token_middleware, - options = Options::default().with_kamu_config(indoc::indoc!( - r#" - auth: - providers: - - kind: password - accounts: - - accountName: kamu - email: kamu@example.com - "# - )) ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -55,16 +28,6 @@ kamu_node_run_api_server_e2e_test!( kamu_node_run_api_server_e2e_test!( storage = sqlite, fixture = kamu_node_e2e_repo_tests::test_token_validate, - options = Options::default().with_kamu_config(indoc::indoc!( - r#" - auth: - providers: - - kind: password - accounts: - - accountName: kamu - email: kamu@example.com - "# - )) ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -72,16 +35,6 @@ kamu_node_run_api_server_e2e_test!( kamu_node_run_api_server_e2e_test!( storage = sqlite, fixture = kamu_node_e2e_repo_tests::test_login_via_rest_password, - options = Options::default().with_kamu_config(indoc::indoc!( - r#" - auth: - providers: - - kind: password - accounts: - - accountName: kamu - email: kamu@example.com - "# - )) ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -89,16 +42,6 @@ kamu_node_run_api_server_e2e_test!( kamu_node_run_api_server_e2e_test!( storage = sqlite, fixture = kamu_node_e2e_repo_tests::test_login_via_rest_unauthorized, - options = Options::default().with_kamu_config(indoc::indoc!( - r#" - auth: - providers: - - kind: password - accounts: - - accountName: kamu - email: kamu@example.com - "# - )) ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/e2e/app/sqlite/tests/tests/test_odf_core.rs b/src/e2e/app/sqlite/tests/tests/test_odf_core.rs index 7408861d..c4a5ef62 100644 --- a/src/e2e/app/sqlite/tests/tests/test_odf_core.rs +++ b/src/e2e/app/sqlite/tests/tests/test_odf_core.rs @@ -11,17 +11,9 @@ use kamu_node_e2e_common::prelude::*; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -kamu_node_run_api_server_e2e_test!( - storage = sqlite, - fixture = kamu_node_e2e_repo_tests::test_odf_info_st, -); - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - kamu_node_run_api_server_e2e_test!( storage = sqlite, fixture = kamu_node_e2e_repo_tests::test_odf_info_mt, - options = Options::default().with_multi_tenant() ); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/e2e/app/sqlite/tests/tests/test_openapi.rs b/src/e2e/app/sqlite/tests/tests/test_openapi.rs index b455698c..7233f834 100644 --- a/src/e2e/app/sqlite/tests/tests/test_openapi.rs +++ b/src/e2e/app/sqlite/tests/tests/test_openapi.rs @@ -11,14 +11,6 @@ use kamu_node_e2e_common::prelude::*; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -kamu_node_run_api_server_e2e_test!( - storage = sqlite, - fixture = kamu_node_e2e_repo_tests::test_openapi_st, - extra_test_groups = "resourcegen", -); - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - kamu_node_run_api_server_e2e_test!( storage = sqlite, fixture = kamu_node_e2e_repo_tests::test_openapi_mt,