Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V3 #114

Merged
merged 279 commits into from
Aug 10, 2024

bump

aae135c
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

V3 #114

bump
aae135c
Select commit
Loading
Failed to load commit list.
GitHub Actions / DotNET - Tests succeeded Aug 10, 2024 in 0s

333 passed, 0 failed and 2 skipped

Tests passed successfully

Report Passed Failed Skipped Time
tests/Serilog.Ui.ElasticSearchProvider.Tests/TestResults/test-results.trx 26✔️ 2✖️ 26s
tests/Serilog.Ui.MongoDbProvider.Tests/TestResults/test-results.trx 26✔️ 12s
tests/Serilog.Ui.MsSqlServerProvider.Tests/TestResults/test-results.trx 52✔️ 27s
tests/Serilog.Ui.MySqlProvider.Tests/TestResults/test-results.trx 58✔️ 33s
tests/Serilog.Ui.PostgreSqlProvider.Tests/TestResults/test-results.trx 62✔️ 22s
tests/Serilog.Ui.RavenDbProvider.Tests/TestResults/test-results.trx 22✔️ 18s
tests/Serilog.Ui.Web.Tests/TestResults/test-results.trx 87✔️ 10s

✔️ tests/Serilog.Ui.ElasticSearchProvider.Tests/TestResults/test-results.trx

28 tests were completed in 26s with 26 passed, 0 failed and 2 skipped.

Test suite Passed Failed Skipped Time
ElasticSearch.Tests.DataProvider.DataProviderBaseTest 2✔️ 198ms
ElasticSearch.Tests.DataProvider.DataProviderPaginationTest 5✔️ 2✖️ 250ms
ElasticSearch.Tests.DataProvider.DataProviderSearchTest 8✔️ 314ms
ElasticSearch.Tests.Extensions.ElasticSearchDbOptionsTest 4✔️ 20ms
ElasticSearch.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 3✔️ 59ms
ElasticSearch.Tests.Serializers.VanillaSerializerTest 4✔️ 67ms

✔️ ElasticSearch.Tests.DataProvider.DataProviderBaseTest

✔️ It_logs_and_throws_when_db_read_breaks_down
✔️ It_throws_when_any_dependency_is_null

✔️ ElasticSearch.Tests.DataProvider.DataProviderPaginationTest

✔️ It fetches with limit
✔️ It fetches with limit and skip
✔️ It fetches with skip
✖️ It fetches with sort by level
✖️ It fetches with sort by message
✔️ It fetches with sort by timestamp
✔️ It_throws_when_skip_is_zero

✔️ ElasticSearch.Tests.DataProvider.DataProviderSearchTest

✔️ It finds all data with default search
✔️ It finds data with all filters
✔️ It finds only data emitted after date
✔️ It finds only data emitted before date
✔️ It finds only data emitted in dates range
✔️ It finds only data with specific level
✔️ It finds only data with specific message content
✔️ It finds same data on same repeated search

✔️ ElasticSearch.Tests.Extensions.ElasticSearchDbOptionsTest

✔️ It_returns_custom_provider_name
✔️ It_returns_default_provider_name
✔️ It_throws_on_validation_failed
✔️ It_validates_options

✔️ ElasticSearch.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest

✔️ It registers multiple providers
✔️ It_registers_provider_and_dependencies
✔️ It_throws_on_invalid_registration

✔️ ElasticSearch.Tests.Serializers.VanillaSerializerTest

✔️ It_deserializes_property
✔️ It_deserializes_property_async
✔️ It_serializes_property
✔️ It_serializes_property_async

✔️ tests/Serilog.Ui.MongoDbProvider.Tests/TestResults/test-results.trx

26 tests were completed in 12s with 26 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
MongoDb.Tests.DataProvider.DataProviderBaseTest 2✔️ 2s
MongoDb.Tests.DataProvider.DataProviderPaginationTest 7✔️ 640ms
MongoDb.Tests.DataProvider.DataProviderSearchTest 8✔️ 585ms
MongoDb.Tests.Extensions.MongoDbOptionsTest 4✔️ 289ms
MongoDb.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 5✔️ 2s

✔️ MongoDb.Tests.DataProvider.DataProviderBaseTest

✔️ It logs and throws when db read breaks down
✔️ It throws when any dependency is null

✔️ MongoDb.Tests.DataProvider.DataProviderPaginationTest

✔️ It fetches with limit
✔️ It fetches with limit and skip
✔️ It fetches with skip
✔️ It fetches with sort by level
✔️ It fetches with sort by message
✔️ It fetches with sort by timestamp
✔️ It throws when skip is zero

✔️ MongoDb.Tests.DataProvider.DataProviderSearchTest

✔️ It finds all data with default search
✔️ It finds data with all filters
✔️ It finds only data emitted after date
✔️ It finds only data emitted before date
✔️ It finds only data emitted in dates range
✔️ It finds only data with specific level
✔️ It finds only data with specific message content
✔️ It finds same data on same repeated search

✔️ MongoDb.Tests.Extensions.MongoDbOptionsTest

✔️ It returns custom provider name
✔️ It returns default provider name
✔️ It throws on validation failed
✔️ It validates options

✔️ MongoDb.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest

✔️ It registers IMongoClient only when not registered
✔️ It registers multiple providers
✔️ It registers provider and dependencies with connection string and collection
✔️ It registers provider and dependencies with connection string collection and dbname
✔️ It throws on invalid registration

✔️ tests/Serilog.Ui.MsSqlServerProvider.Tests/TestResults/test-results.trx

52 tests were completed in 27s with 52 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
MsSql.Tests.DapperHandlers.DapperDateTimeHandlerTest 14✔️ 178ms
MsSql.Tests.DataProvider.DataProviderBaseTest 2✔️ 154ms
MsSql.Tests.DataProvider.DataProviderPaginationAdditionalColsTest 7✔️ 227ms
MsSql.Tests.DataProvider.DataProviderPaginationTest 7✔️ 214ms
MsSql.Tests.DataProvider.DataProviderSearchAdditionalColsTest 9✔️ 130ms
MsSql.Tests.DataProvider.DataProviderSearchTest 8✔️ 122ms
MsSql.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 5✔️ 651ms

✔️ MsSql.Tests.DapperHandlers.DapperDateTimeHandlerTest

✔️ It fail parse with current culture when original format culture was different
✔️ It parse exact formats with none style and invariant culture(customFormat: "M/d/yyyy h:mm:ss tt zzz")
✔️ It parse exact formats with none style and invariant culture(customFormat: "M/d/yyyy h:mm:ss tt")
✔️ It parse exact formats with none style and invariant culture(customFormat: "M/dd/yyyy h:mm:ss tt zzz")
✔️ It parse exact formats with none style and invariant culture(customFormat: "M/dd/yyyy h:mm:ss tt")
✔️ It parse exact formats with none style and invariant culture(customFormat: "M/dd/yyyy hh:mm:ss tt")
✔️ It parse exact formats with none style and invariant culture(customFormat: "M/dd/yyyy hh:mm:ss")
✔️ It parse exact formats with none style and invariant culture(customFormat: "MM/d/yyyy hh:mm:ss tt")
✔️ It parse exact formats with none style and invariant culture(customFormat: "MM/dd/yyyy hh:mm:ss tt")
✔️ It parse exact formats with none style and invariant culture(customFormat: "MM/dd/yyyy HH:mm:ss")
✔️ It parse simple datetime with local style and current culture
✔️ It parse strange format using custom delegate
✔️ It sets value without changes
✔️ It throws when using custom delegate not returns datetime with utc kind

✔️ MsSql.Tests.DataProvider.DataProviderBaseTest

✔️ It logs and throws when db read breaks down
✔️ It throws when any dependency is null

✔️ MsSql.Tests.DataProvider.DataProviderPaginationAdditionalColsTest

✔️ It fetches with limit
✔️ It fetches with limit and skip
✔️ It fetches with skip
✔️ It fetches with sort by level
✔️ It fetches with sort by message
✔️ It fetches with sort by timestamp
✔️ It throws when skip is zero

✔️ MsSql.Tests.DataProvider.DataProviderPaginationTest

✔️ It fetches with limit
✔️ It fetches with limit and skip
✔️ It fetches with skip
✔️ It fetches with sort by level
✔️ It fetches with sort by message
✔️ It fetches with sort by timestamp
✔️ It throws when skip is zero

✔️ MsSql.Tests.DataProvider.DataProviderSearchAdditionalColsTest

✔️ It finds all data with default search
✔️ It finds data with all filters
✔️ It finds data with expected additional columns
✔️ It finds only data emitted after date
✔️ It finds only data emitted before date
✔️ It finds only data emitted in dates range
✔️ It finds only data with specific level
✔️ It finds only data with specific message content
✔️ It finds same data on same repeated search

✔️ MsSql.Tests.DataProvider.DataProviderSearchTest

✔️ It finds all data with default search
✔️ It finds data with all filters
✔️ It finds only data emitted after date
✔️ It finds only data emitted before date
✔️ It finds only data emitted in dates range
✔️ It finds only data with specific level
✔️ It finds only data with specific message content
✔️ It finds same data on same repeated search

✔️ MsSql.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest

✔️ It registers additional columns options during service registration
✔️ It registers multiple providers
✔️ It registers provider and dependencies
✔️ It registers provider and dependencies with custom log model
✔️ It throws on invalid registration

✔️ tests/Serilog.Ui.MySqlProvider.Tests/TestResults/test-results.trx

58 tests were completed in 33s with 58 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
MySql.Tests.DataProvider.MariaDb.DataProviderBaseTest 2✔️ 7ms
MySql.Tests.DataProvider.MariaDb.DataProviderPaginationAdditionalColsTest 7✔️ 550ms
MySql.Tests.DataProvider.MariaDb.DataProviderPaginationTest 7✔️ 681ms
MySql.Tests.DataProvider.MariaDb.DataProviderSearchAdditionalColsTest 9✔️ 781ms
MySql.Tests.DataProvider.MariaDb.DataProviderSearchTest 8✔️ 609ms
MySql.Tests.DataProvider.MySql.DataProviderBaseTest 2✔️ 127ms
MySql.Tests.DataProvider.MySql.DataProviderPaginationTest 7✔️ 487ms
MySql.Tests.DataProvider.MySql.DataProviderSearchTest 8✔️ 461ms
MySql.Tests.Extensions.SerilogUiOptionBuilderExtensionsMariaDbTest 5✔️ 219ms
MySql.Tests.Extensions.SerilogUiOptionBuilderExtensionsMySqlTest 3✔️ 104ms

✔️ MySql.Tests.DataProvider.MariaDb.DataProviderBaseTest

✔️ It logs and throws when db read breaks down
✔️ It throws when any dependency is null

✔️ MySql.Tests.DataProvider.MariaDb.DataProviderPaginationAdditionalColsTest

✔️ It fetches with limit
✔️ It fetches with limit and skip
✔️ It fetches with skip
✔️ It fetches with sort by level
✔️ It fetches with sort by message
✔️ It fetches with sort by timestamp
✔️ It throws when skip is zero

✔️ MySql.Tests.DataProvider.MariaDb.DataProviderPaginationTest

✔️ It fetches with limit
✔️ It fetches with limit and skip
✔️ It fetches with skip
✔️ It fetches with sort by level
✔️ It fetches with sort by message
✔️ It fetches with sort by timestamp
✔️ It throws when skip is zero

✔️ MySql.Tests.DataProvider.MariaDb.DataProviderSearchAdditionalColsTest

✔️ It finds all data with default search
✔️ It finds data with all filters
✔️ It finds data with expected additional columns
✔️ It finds only data emitted after date
✔️ It finds only data emitted before date
✔️ It finds only data emitted in dates range
✔️ It finds only data with specific level
✔️ It finds only data with specific message content
✔️ It finds same data on same repeated search

✔️ MySql.Tests.DataProvider.MariaDb.DataProviderSearchTest

✔️ It finds all data with default search
✔️ It finds data with all filters
✔️ It finds only data emitted after date
✔️ It finds only data emitted before date
✔️ It finds only data emitted in dates range
✔️ It finds only data with specific level
✔️ It finds only data with specific message content
✔️ It finds same data on same repeated search

✔️ MySql.Tests.DataProvider.MySql.DataProviderBaseTest

✔️ It logs and throws when db read breaks down
✔️ It throws when any dependency is null

✔️ MySql.Tests.DataProvider.MySql.DataProviderPaginationTest

✔️ It fetches with limit
✔️ It fetches with limit and skip
✔️ It fetches with skip
✔️ It fetches with sort by level
✔️ It fetches with sort by message
✔️ It fetches with sort by timestamp
✔️ It throws when skip is zero

✔️ MySql.Tests.DataProvider.MySql.DataProviderSearchTest

✔️ It finds all data with default search
✔️ It finds data with all filters
✔️ It finds only data emitted after date
✔️ It finds only data emitted before date
✔️ It finds only data emitted in dates range
✔️ It finds only data with specific level
✔️ It finds only data with specific message content
✔️ It finds same data on same repeated search

✔️ MySql.Tests.Extensions.SerilogUiOptionBuilderExtensionsMariaDbTest

✔️ It registers additional columns options during service registration
✔️ It registers multiple providers
✔️ It registers provider and dependencies
✔️ It registers provider and dependencies with custom log model
✔️ It throws on invalid registration

✔️ MySql.Tests.Extensions.SerilogUiOptionBuilderExtensionsMySqlTest

✔️ It registers multiple providers
✔️ It registers provider and dependencies
✔️ It throws on invalid registration

✔️ tests/Serilog.Ui.PostgreSqlProvider.Tests/TestResults/test-results.trx

62 tests were completed in 22s with 62 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Postgres.Tests.DataProvider.DataProviderBaseTest 2✔️ 183ms
Postgres.Tests.DataProvider.DataProviderPaginationTest 7✔️ 666ms
Postgres.Tests.DataProvider.DataProviderPaginationWithColsTests 7✔️ 502ms
Postgres.Tests.DataProvider.DataProviderSearchTest 8✔️ 1s
Postgres.Tests.DataProvider.DataProviderSearchWithColsTest 9✔️ 1s
Postgres.Tests.DataProvider.QueryBuilderTests 9✔️ 67ms
Postgres.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 6✔️ 232ms
Postgres.Tests.Model.LogLevelConverterTest 14✔️ 9ms

✔️ Postgres.Tests.DataProvider.DataProviderBaseTest

✔️ It logs and throws when db read breaks down
✔️ It throws when any dependency is null

✔️ Postgres.Tests.DataProvider.DataProviderPaginationTest

✔️ It fetches with limit
✔️ It fetches with limit and skip
✔️ It fetches with skip
✔️ It fetches with sort by level
✔️ It fetches with sort by message
✔️ It fetches with sort by timestamp
✔️ It throws when skip is zero

✔️ Postgres.Tests.DataProvider.DataProviderPaginationWithColsTests

✔️ It fetches with limit
✔️ It fetches with limit and skip
✔️ It fetches with skip
✔️ It fetches with sort by level
✔️ It fetches with sort by message
✔️ It fetches with sort by timestamp
✔️ It throws when skip is zero

✔️ Postgres.Tests.DataProvider.DataProviderSearchTest

✔️ It finds all data with default search
✔️ It finds data with all filters
✔️ It finds only data emitted after date
✔️ It finds only data emitted before date
✔️ It finds only data emitted in dates range
✔️ It finds only data with specific level
✔️ It finds only data with specific message content
✔️ It finds same data on same repeated search

✔️ Postgres.Tests.DataProvider.DataProviderSearchWithColsTest

✔️ It finds all data with default search
✔️ It finds data with all filters
✔️ It finds data with expected additional columns
✔️ It finds only data emitted after date
✔️ It finds only data emitted before date
✔️ It finds only data emitted in dates range
✔️ It finds only data with specific level
✔️ It finds only data with specific message content
✔️ It finds same data on same repeated search

✔️ Postgres.Tests.DataProvider.QueryBuilderTests

✔️ BuildFetchLogsQuery ForAlternativeSink ReturnsCorrectQuery(schema: "dbo", tableName: "logs", level: "Information", searchCriteria: "Test", startDate: 2024-08-10T11:01:24.2554398+00:00, endDate: 2024-08-10T11:01:24.2554399+00:00, expectedQuery: "SELECT \"Message\", \"MessageTemplate\", \"Level\""···)
✔️ BuildFetchLogsQuery ForAlternativeSink ReturnsCorrectQuery(schema: "dbo", tableName: "logs", level: "Information", searchCriteria: "Test", startDate: null, endDate: null, expectedQuery: "SELECT \"Message\", \"MessageTemplate\", \"Level\""···)
✔️ BuildFetchLogsQuery ForAlternativeSink ReturnsCorrectQuery(schema: "dbo", tableName: "logs", level: "Information", searchCriteria: null, startDate: null, endDate: null, expectedQuery: "SELECT \"Message\", \"MessageTemplate\", \"Level\""···)
✔️ BuildFetchLogsQuery ForAlternativeSink ReturnsCorrectQuery(schema: "dbo", tableName: "logs", level: null, searchCriteria: "Test", startDate: null, endDate: null, expectedQuery: "SELECT \"Message\", \"MessageTemplate\", \"Level\""···)
✔️ BuildFetchLogsQuery ForAlternativeSink ReturnsCorrectQuery(schema: "dbo", tableName: "logs", level: null, searchCriteria: null, startDate: 2024-08-10T11:01:24.2554336+00:00, endDate: null, expectedQuery: "SELECT \"Message\", \"MessageTemplate\", \"Level\""···)
✔️ BuildFetchLogsQuery ForAlternativeSink ReturnsCorrectQuery(schema: "dbo", tableName: "logs", level: null, searchCriteria: null, startDate: 2024-08-10T11:01:24.2554394+00:00, endDate: 2024-08-10T11:01:24.2554395+00:00, expectedQuery: "SELECT \"Message\", \"MessageTemplate\", \"Level\""···)
✔️ BuildFetchLogsQuery ForAlternativeSink ReturnsCorrectQuery(schema: "dbo", tableName: "logs", level: null, searchCriteria: null, startDate: null, endDate: 2024-08-10T11:01:24.2554392+00:00, expectedQuery: "SELECT \"Message\", \"MessageTemplate\", \"Level\""···)
✔️ BuildFetchLogsQuery ForAlternativeSink ReturnsCorrectQuery(schema: "dbo", tableName: "logs", level: null, searchCriteria: null, startDate: null, endDate: null, expectedQuery: "SELECT \"Message\", \"MessageTemplate\", \"Level\""···)
✔️ BuildFetchLogsQuery not includes Exception if custom log model

✔️ Postgres.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest

✔️ It registers multiple providers
✔️ It registers provider and dependencies with custom log model
✔️ It registers provider and dependencies(sink: null, type: typeof(Serilog.Ui.PostgreSqlProvider.Models.PostgreSqlAlternativeSinkColumnNames))
✔️ It registers provider and dependencies(sink: SerilogSinksPostgreSQL, type: typeof(Serilog.Ui.PostgreSqlProvider.Models.PostgreSqlSinkColumnNames))
✔️ It registers provider and dependencies(sink: SerilogSinksPostgreSQLAlternative, type: typeof(Serilog.Ui.PostgreSqlProvider.Models.PostgreSqlAlternativeSinkColumnNames))
✔️ It throws on invalid registration

✔️ Postgres.Tests.Model.LogLevelConverterTest

✔️ It maps the correct log level name(input: "0", expected: "Verbose")
✔️ It maps the correct log level name(input: "1", expected: "Debug")
✔️ It maps the correct log level name(input: "2", expected: "Information")
✔️ It maps the correct log level name(input: "3", expected: "Warning")
✔️ It maps the correct log level name(input: "4", expected: "Error")
✔️ It maps the correct log level name(input: "5", expected: "Fatal")
✔️ It maps the correct log level name(input: "random", expected: "")
✔️ It maps the correct log level value(input: "Debug", expected: 1)
✔️ It maps the correct log level value(input: "Error", expected: 4)
✔️ It maps the correct log level value(input: "Fatal", expected: 5)
✔️ It maps the correct log level value(input: "Information", expected: 2)
✔️ It maps the correct log level value(input: "random", expected: 100)
✔️ It maps the correct log level value(input: "Verbose", expected: 0)
✔️ It maps the correct log level value(input: "Warning", expected: 3)

✔️ tests/Serilog.Ui.RavenDbProvider.Tests/TestResults/test-results.trx

22 tests were completed in 18s with 22 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
RavenDb.Tests.DataProvider.DataProviderBaseTest 2✔️ 412ms
RavenDb.Tests.DataProvider.DataProviderPaginationTest 7✔️ 1s
RavenDb.Tests.DataProvider.DataProviderSearchTest 8✔️ 300ms
RavenDb.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 5✔️ 424ms

✔️ RavenDb.Tests.DataProvider.DataProviderBaseTest

✔️ It logs and throws when db read breaks down
✔️ It throws when any dependency is null

✔️ RavenDb.Tests.DataProvider.DataProviderPaginationTest

✔️ It fetches with limit
✔️ It fetches with limit and skip
✔️ It fetches with skip
✔️ It fetches with sort by level
✔️ It fetches with sort by message
✔️ It fetches with sort by timestamp
✔️ It throws when skip is zero

✔️ RavenDb.Tests.DataProvider.DataProviderSearchTest

✔️ It finds all data with default search
✔️ It finds data with all filters
✔️ It finds only data emitted after date
✔️ It finds only data emitted before date
✔️ It finds only data emitted in dates range
✔️ It finds only data with specific level
✔️ It finds only data with specific message content
✔️ It finds same data on same repeated search

✔️ RavenDb.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest

✔️ It registers multiple providers
✔️ It registers provider and dependencies with documentStore
✔️ It returns custom provider name
✔️ It returns default provider name
✔️ It throws on invalid registration

✔️ tests/Serilog.Ui.Web.Tests/TestResults/test-results.trx

87 tests were completed in 10s with 87 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Serilog.Ui.Web.Tests.Authorization.AuthorizationAsyncTest 1✔️ 578ms
Serilog.Ui.Web.Tests.Authorization.AuthorizationDefaultTest 1✔️ 567ms
Serilog.Ui.Web.Tests.Authorization.AuthorizationSyncTest 1✔️ 449ms
Serilog.Ui.Web.Tests.Authorization.Filters.BasicAuthenticationFilterTest 3✔️ 11ms
Serilog.Ui.Web.Tests.Authorization.Filters.BasicAuthServiceByConfigurationTest 2✔️ 40ms
Serilog.Ui.Web.Tests.Authorization.Filters.PolicyAuthenticationFilterTest 2✔️ 9ms
Serilog.Ui.Web.Tests.Endpoints.SerilogUiAppRoutesTest 4✔️ 143ms
Serilog.Ui.Web.Tests.Endpoints.SerilogUiDecoratorsTest 6✔️ 1s
Serilog.Ui.Web.Tests.Endpoints.SerilogUiEndpointsTest 4✔️ 439ms
Serilog.Ui.Web.Tests.Extensions.ApplicationBuilderExtensionsTest 3✔️ 2s
Serilog.Ui.Web.Tests.Extensions.HttpRequestExtensionsTest 5✔️ 521ms
Serilog.Ui.Web.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 8✔️ 85ms
Serilog.Ui.Web.Tests.Extensions.ServiceCollectionExtensionsTest 2✔️ 2ms
Serilog.Ui.Web.Tests.Models.RelationalDbOptionsTest 2✔️ 3ms
Serilog.Ui.Web.Tests.Models.UiOptionsTest 10✔️ 296ms
Serilog.Ui.Web.Tests.OptionsBuilder.ProvidersOptionsTest 2✔️ 10ms
Serilog.Ui.Web.Tests.OptionsBuilder.SerilogUiOptionsBuilderTest 3✔️ 478ms
Serilog.Ui.Web.Tests.SerilogUiMiddlewareTest 28✔️ 3s

✔️ Serilog.Ui.Web.Tests.Authorization.AuthorizationAsyncTest

✔️ Local Requests Are Not Allowed By Async Filters

✔️ Serilog.Ui.Web.Tests.Authorization.AuthorizationDefaultTest

✔️ Local Requests Are Allowed By Default

✔️ Serilog.Ui.Web.Tests.Authorization.AuthorizationSyncTest

✔️ Local Requests Are Not Allowed By Sync Filters

✔️ Serilog.Ui.Web.Tests.Authorization.Filters.BasicAuthenticationFilterTest

✔️ Authorize returns true on not basic authorization
✔️ Authorize with implementation returns implementation result(isAuth: False)
✔️ Authorize with implementation returns implementation result(isAuth: True)

✔️ Serilog.Ui.Web.Tests.Authorization.Filters.BasicAuthServiceByConfigurationTest

✔️ CanAccessAsync returns false with invalid credentials
✔️ CanAccessAsync returns true with valid credentials

✔️ Serilog.Ui.Web.Tests.Authorization.Filters.PolicyAuthenticationFilterTest

✔️ It returns false with configured policy
✔️ It returns true with configured policy

✔️ Serilog.Ui.Web.Tests.Endpoints.SerilogUiAppRoutesTest

✔️ It gets app home
✔️ It redirects app home
✔️ It returns page error when stream cannot load app home
✔️ It throws on app home if ui options were not set

✔️ Serilog.Ui.Web.Tests.Endpoints.SerilogUiDecoratorsTest

✔️ It blocks the call on failed authentication
✔️ It forwards the call to GetHome when unauthorized page access is enabled
✔️ It forwards the call to GetKeys on success authentication
✔️ It forwards the call to GetLogs on success authentication
✔️ It forwards the call to RedirectHome always
✔️ It return GetHome on failed authentication with custom ui option

✔️ Serilog.Ui.Web.Tests.Endpoints.SerilogUiEndpointsTest

✔️ It gets logs
✔️ It gets logs keys
✔️ It gets logs with search parameters
✔️ It serializes an error on exception

✔️ Serilog.Ui.Web.Tests.Extensions.ApplicationBuilderExtensionsTest

✔️ It not throws on null parameters
✔️ It register ui middleware
✔️ It throws on null deps

✔️ Serilog.Ui.Web.Tests.Extensions.HttpRequestExtensionsTest

✔️ It is local when no xforwarded and remote ip address is null
✔️ It is local when remote ip address equals local ip address
✔️ It is local when remote ip address is loopback
✔️ It is not local when remote ip address is not local nor loopback
✔️ It is not local when xforwarded

✔️ Serilog.Ui.Web.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest

✔️ It registers async filter
✔️ It registers async filter with implementation factory
✔️ It registers basic filter with custom implementation
✔️ It registers basic filter with default implementation
✔️ It registers local requests filter
✔️ It registers policy filter
✔️ It registers sync filter
✔️ It registers sync filter with implementation factory

✔️ Serilog.Ui.Web.Tests.Extensions.ServiceCollectionExtensionsTest

✔️ AddSerilogUi registers providers options in services
✔️ It throws if AddSerilogUi is called twice

✔️ Serilog.Ui.Web.Tests.Models.RelationalDbOptionsTest

✔️ It returns custom provider name
✔️ It returns default provider name

✔️ Serilog.Ui.Web.Tests.Models.UiOptionsTest

✔️ It appends multiple script tags
✔️ It appends multiple stylesheet tags
✔️ It appends script tag with customs
✔️ It appends script tag with defaults
✔️ It appends stylesheet tag with customs
✔️ It appends stylesheet tag with defaults
✔️ It gets default options
✔️ It mix scripts and stylesheets
✔️ It sets options
✔️ It validates options

✔️ Serilog.Ui.Web.Tests.OptionsBuilder.ProvidersOptionsTest

✔️ It creates info from default log model
✔️ It creates info from log model

✔️ Serilog.Ui.Web.Tests.OptionsBuilder.SerilogUiOptionsBuilderTest

✔️ It adds entry in disabled sort keys
✔️ It creates entries in additional columns
✔️ It registers options in services

✔️ Serilog.Ui.Web.Tests.SerilogUiMiddlewareTest

✔️ It hits ui endpoint when request matches method and custom options prefix(pathReq: "/test/", statusCode: 418)
✔️ It hits ui endpoint when request matches method and custom options prefix(pathReq: "/test/api/keys/", statusCode: 417)
✔️ It hits ui endpoint when request matches method and custom options prefix(pathReq: "/test/api/logs/", statusCode: 409)
✔️ It hits ui endpoint when request matches method and custom options prefix(pathReq: "/test/index.html", statusCode: 400)
✔️ It hits ui endpoint when request matches method and options prefix(pathReq: "/serilog-ui/", statusCode: 418)
✔️ It hits ui endpoint when request matches method and options prefix(pathReq: "/serilog-ui/api/keys/", statusCode: 417)
✔️ It hits ui endpoint when request matches method and options prefix(pathReq: "/serilog-ui/api/logs/", statusCode: 409)
✔️ It hits ui endpoint when request matches method and options prefix(pathReq: "/serilog-ui/index.html", statusCode: 400)
✔️ It maps request to assets when request final path part starts with assets folder(pathReq: "/serilog-ui/assets/index.js?query=query", additionalPart: "?query=query")
✔️ It maps request to assets when request final path part starts with assets folder(pathReq: "/serilog-ui/assets/index.js", additionalPart: null)
✔️ It maps request to assets when request final path part starts with assets folder(pathReq: "/serilog-ui/test/assets/index.js", additionalPart: null)
✔️ It maps request to assets when request final path part starts with assets folder(pathReq: "/serilog-ui/test/nested/assets/index.js?query=quer"···, additionalPart: "?query=query")
✔️ It maps request to assets when request final path part starts with assets folder(pathReq: "/serilog-ui/test/nested/assets/index.js", additionalPart: null)
✔️ It not map request to assets when request final path part not match assets folder(pathReq: "/serilog-ui/asset/index.js?query=query")
✔️ It not map request to assets when request final path part not match assets folder(pathReq: "/serilog-ui/assets.js")
✔️ It not map request to assets when request final path part not match assets folder(pathReq: "/serilog-ui/assets")
✔️ It not map request to assets when request final path part not match assets folder(pathReq: "/serilog-ui/index.js")
✔️ It not map request to assets when request final path part not match assets folder(pathReq: "/serilog-ui/test/asset/index.js")
✔️ It not map request to assets when request final path part not match assets folder(pathReq: "/serilog-ui/test/nested/my-assets/index.js")
✔️ It proceeds onwards when request does not match options prefix(pathReq: "/fake-prefix", statusCode: 400)
✔️ It proceeds onwards when request does not match options prefix(pathReq: "/fake-prefix/", statusCode: 400)
✔️ It proceeds onwards when request does not match options prefix(pathReq: "/fake-prefix/index.html", statusCode: 418)
✔️ It proceeds onwards when request does not match options prefix(pathReq: "fake-prefix/api/keys/", statusCode: 417)
✔️ It proceeds onwards when request does not match options prefix(pathReq: "fake-prefix/api/logs/", statusCode: 409)
✔️ It proceeds onwards when request is not a get(pathReq: "/serilog-ui/", statusCode: 400)
✔️ It proceeds onwards when request is not a get(pathReq: "/serilog-ui/api/keys/", statusCode: 417)
✔️ It proceeds onwards when request is not a get(pathReq: "/serilog-ui/api/logs/", statusCode: 409)
✔️ It proceeds onwards when request is not a get(pathReq: "/serilog-ui/index.html", statusCode: 418)