Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
eab2698
Fix #3267: Warn when dab validate finds zero entities in the config
aaronburtle Mar 23, 2026
e2849f8
Add test for #3267: Verify warning when zero entities defined
aaronburtle Mar 23, 2026
0459fb3
Merge branch 'main' into dev/aaronburtle/warn-zero-entities-validate
aaronburtle Mar 23, 2026
447b0da
Fix zero-entities check: use .Entities.Count, .Autoentities.Count, an…
aaronburtle Mar 23, 2026
ff044ed
Consolidate TryGetConfig to a single call in IsConfigValid
aaronburtle Mar 23, 2026
c62ed09
Merge branch 'main' into dev/aaronburtle/warn-zero-entities-validate
aaronburtle Mar 26, 2026
346f079
Merge branch 'main' into dev/aaronburtle/warn-zero-entities-validate
aaronburtle Mar 27, 2026
94aa01d
Merge branch 'main' into dev/aaronburtle/warn-zero-entities-validate
anushakolan Mar 31, 2026
57c15ed
Merge branch 'main' into dev/aaronburtle/warn-zero-entities-validate
aaronburtle Apr 3, 2026
d402495
address comments
aaronburtle Apr 6, 2026
ef7df09
Merge branch 'dev/aaronburtle/warn-zero-entities-validate' of github.…
aaronburtle Apr 6, 2026
4f93225
new validation logic
aaronburtle Apr 6, 2026
535b209
Merge branch 'main' into dev/aaronburtle/warn-zero-entities-validate
aaronburtle Apr 7, 2026
d99a098
cleanup
aaronburtle Apr 7, 2026
26be2f9
Merge branch 'dev/aaronburtle/warn-zero-entities-validate' of github.…
aaronburtle Apr 7, 2026
f33b77b
use child configs instead of new metadata class
aaronburtle Apr 7, 2026
06c131e
better tests
aaronburtle Apr 7, 2026
8fee9c0
format
aaronburtle Apr 7, 2026
88f7eae
Merge branch 'main' into dev/aaronburtle/warn-zero-entities-validate
aaronburtle Apr 7, 2026
8e76209
fix tests
aaronburtle Apr 8, 2026
d8c7569
Merge remote-tracking branch 'origin/main' into dev/aaronburtle/warn-…
aaronburtle Apr 27, 2026
5c93d5e
...
aaronburtle Apr 27, 2026
eb0d335
fix tests to match new logic, correct isValidateOnly logic
aaronburtle Apr 28, 2026
09bcd9e
fix test conflict
aaronburtle Apr 28, 2026
c5d5288
format
aaronburtle Apr 28, 2026
9b4edcb
format
aaronburtle Apr 28, 2026
c091e61
Merge branch 'main' into dev/aaronburtle/warn-zero-entities-validate
aaronburtle Apr 28, 2026
1817254
Merge branch 'main' into dev/aaronburtle/warn-zero-entities-validate
aaronburtle Apr 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/Cli.Tests/ConfigureOptionsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -811,7 +811,7 @@ public void TestDatabaseTypeUpdate(string dbType)
string updatedConfig = _fileSystem!.File.ReadAllText(TEST_RUNTIME_CONFIG_FILE);
Assert.IsTrue(RuntimeConfigLoader.TryParseConfig(updatedConfig, out RuntimeConfig? config));
Assert.IsNotNull(config.Runtime);
Assert.AreEqual(config.DataSource.DatabaseType, Enum.Parse<DatabaseType>(dbType, ignoreCase: true));
Assert.AreEqual(config.DataSource!.DatabaseType, Enum.Parse<DatabaseType>(dbType, ignoreCase: true));
}

/// <summary>
Expand Down Expand Up @@ -841,7 +841,7 @@ public void TestDatabaseTypeUpdateCosmosDB_NoSQLToMSSQL()
string updatedConfig = _fileSystem!.File.ReadAllText(TEST_RUNTIME_CONFIG_FILE);
Assert.IsTrue(RuntimeConfigLoader.TryParseConfig(updatedConfig, out RuntimeConfig? config));
Assert.IsNotNull(config.Runtime);
Assert.AreEqual(config.DataSource.DatabaseType, DatabaseType.MSSQL);
Assert.AreEqual(config.DataSource!.DatabaseType, DatabaseType.MSSQL);
Assert.AreEqual(config.DataSource.Options!.GetValueOrDefault("set-session-context", false), true);
Assert.IsFalse(config.DataSource.Options!.ContainsKey("database"));
Assert.IsFalse(config.DataSource.Options!.ContainsKey("container"));
Expand Down Expand Up @@ -877,7 +877,7 @@ public void TestDatabaseTypeUpdateMSSQLToCosmosDB_NoSQL()
string updatedConfig = _fileSystem!.File.ReadAllText(TEST_RUNTIME_CONFIG_FILE);
Assert.IsTrue(RuntimeConfigLoader.TryParseConfig(updatedConfig, out RuntimeConfig? config));
Assert.IsNotNull(config.Runtime);
Assert.AreEqual(config.DataSource.DatabaseType, DatabaseType.CosmosDB_NoSQL);
Assert.AreEqual(config.DataSource!.DatabaseType, DatabaseType.CosmosDB_NoSQL);
Assert.AreEqual(config.DataSource.Options!.GetValueOrDefault("database"), "testdb");
Assert.AreEqual(config.DataSource.Options!.GetValueOrDefault("container"), "testcontainer");
Assert.AreEqual(config.DataSource.Options!.GetValueOrDefault("schema"), "testschema.gql");
Expand Down
10 changes: 5 additions & 5 deletions src/Cli.Tests/EndToEndTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public Task TestInitForCosmosDBNoSql()

Assert.IsNotNull(runtimeConfig);
Assert.IsTrue(runtimeConfig.AllowIntrospection);
Assert.AreEqual(DatabaseType.CosmosDB_NoSQL, runtimeConfig.DataSource.DatabaseType);
Assert.AreEqual(DatabaseType.CosmosDB_NoSQL, runtimeConfig.DataSource!.DatabaseType);
CosmosDbNoSQLDataSourceOptions? cosmosDataSourceOptions = runtimeConfig.DataSource.GetTypedOptions<CosmosDbNoSQLDataSourceOptions>();
Assert.IsNotNull(cosmosDataSourceOptions);
Assert.AreEqual("graphqldb", cosmosDataSourceOptions.Database);
Expand Down Expand Up @@ -93,7 +93,7 @@ public void TestInitForCosmosDBPostgreSql()
Assert.IsTrue(_runtimeConfigLoader!.TryLoadConfig(TEST_RUNTIME_CONFIG_FILE, out RuntimeConfig? runtimeConfig));

Assert.IsNotNull(runtimeConfig);
Assert.AreEqual(DatabaseType.CosmosDB_PostgreSQL, runtimeConfig.DataSource.DatabaseType);
Assert.AreEqual(DatabaseType.CosmosDB_PostgreSQL, runtimeConfig.DataSource!.DatabaseType);
Assert.IsNotNull(runtimeConfig.Runtime);
Assert.IsNotNull(runtimeConfig.Runtime.Rest);
Assert.AreEqual("/rest-api", runtimeConfig.Runtime.Rest.Path);
Expand Down Expand Up @@ -124,7 +124,7 @@ public void TestInitializingRestAndGraphQLGlobalSettings()
out RuntimeConfig? runtimeConfig,
replacementSettings: replacementSettings));

SqlConnectionStringBuilder builder = new(runtimeConfig.DataSource.ConnectionString);
SqlConnectionStringBuilder builder = new(runtimeConfig.DataSource!.ConnectionString);
Assert.AreEqual(ProductInfo.GetDataApiBuilderUserAgent(), builder.ApplicationName);

Assert.IsNotNull(runtimeConfig);
Expand Down Expand Up @@ -205,7 +205,7 @@ public void TestEnablingMultipleCreateOperation(CliBool isMultipleCreateEnabled,
replacementSettings: replacementSettings));

Assert.IsNotNull(runtimeConfig);
Assert.AreEqual(expectedDbType, runtimeConfig.DataSource.DatabaseType);
Assert.AreEqual(expectedDbType, runtimeConfig.DataSource!.DatabaseType);
Assert.IsNotNull(runtimeConfig.Runtime);
Assert.IsNotNull(runtimeConfig.Runtime.GraphQL);
if (runtimeConfig.DataSource.DatabaseType is DatabaseType.MSSQL && isMultipleCreateEnabled is not CliBool.None)
Expand Down Expand Up @@ -244,7 +244,7 @@ public void TestAddEntity()

Assert.IsTrue(_runtimeConfigLoader!.TryLoadConfig(TEST_RUNTIME_CONFIG_FILE, out RuntimeConfig? addRuntimeConfig));
Assert.IsNotNull(addRuntimeConfig);
Assert.AreEqual(TEST_ENV_CONN_STRING, addRuntimeConfig.DataSource.ConnectionString);
Assert.AreEqual(TEST_ENV_CONN_STRING, addRuntimeConfig.DataSource!.ConnectionString);
Assert.AreEqual(1, addRuntimeConfig.Entities.Count()); // 1 new entity added
Assert.IsTrue(addRuntimeConfig.Entities.ContainsKey("todo"));
Entity entity = addRuntimeConfig.Entities["todo"];
Expand Down
8 changes: 8 additions & 0 deletions src/Cli.Tests/ModuleInitializer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,14 @@ public static void Init()
VerifierSettings.IgnoreMember<DataSource>(dataSource => dataSource.DatabaseTypeNotSupportedMessage);
// Ignore DefaultDataSourceName as that's not serialized in our config file.
VerifierSettings.IgnoreMember<RuntimeConfig>(config => config.DefaultDataSourceName);
// Ignore IsRootConfig as that's a computed property for validation, not serialized.
VerifierSettings.IgnoreMember<RuntimeConfig>(config => config.IsRootConfig);
// Ignore IsChildConfig as that's a runtime flag for validation, not serialized.
VerifierSettings.IgnoreMember<RuntimeConfig>(config => config.IsChildConfig);
// Ignore AutoentityResolutionCounts as that's populated at runtime during metadata initialization.
VerifierSettings.IgnoreMember<RuntimeConfig>(config => config.AutoentityResolutionCounts);
// Ignore ChildConfigs as that's populated at runtime during child config loading.
VerifierSettings.IgnoreMember<RuntimeConfig>(config => config.ChildConfigs);
// Ignore MaxResponseSizeMB as as that's unimportant from a test standpoint.
VerifierSettings.IgnoreMember<HostOptions>(options => options.MaxResponseSizeMB);
// Ignore UserProvidedMaxResponseSizeMB as that's not serialized in our config file.
Expand Down
4 changes: 2 additions & 2 deletions src/Cli.Tests/UserDelegatedAuthRuntimeParsingTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public void TestRuntimeCanParseUserDelegatedAuthConfig()
// Assert
Assert.IsTrue(success);
Assert.IsNotNull(config);
Assert.IsNotNull(config.DataSource.UserDelegatedAuth);
Assert.IsNotNull(config.DataSource!.UserDelegatedAuth);
Assert.IsTrue(config.DataSource.UserDelegatedAuth.Enabled);
Assert.AreEqual("https://database.windows.net", config.DataSource.UserDelegatedAuth.DatabaseAudience);
}
Expand Down Expand Up @@ -95,7 +95,7 @@ public void TestRuntimeCanParseConfigWithoutUserDelegatedAuth()
// Assert
Assert.IsTrue(success);
Assert.IsNotNull(config);
Assert.IsNull(config.DataSource.UserDelegatedAuth);
Assert.IsNull(config.DataSource!.UserDelegatedAuth);
}
}
}
Loading