Skip to content

Feat/react UI interface #91

Feat/react UI interface

Feat/react UI interface #91

GitHub Actions / DotNET - Tests succeeded Apr 3, 2024 in 0s

248 passed, 0 failed and 2 skipped

Tests passed successfully

Report Passed Failed Skipped Time
tests/Serilog.Ui.ElasticSearchProvider.Tests/TestResults/test-results.trx 19✔️ 2✖️ 48s
tests/Serilog.Ui.MongoDbProvider.Tests/TestResults/test-results.trx 23✔️ 6s
tests/Serilog.Ui.MsSqlServerProvider.Tests/TestResults/test-results.trx 33✔️ 54s
tests/Serilog.Ui.MySqlProvider.Tests/TestResults/test-results.trx 38✔️ 56s
tests/Serilog.Ui.PostgreSqlProvider.Tests/TestResults/test-results.trx 41✔️ 39s
tests/Serilog.Ui.RavenDbProvider.Tests/TestResults/test-results.trx 19✔️ 27s
tests/Serilog.Ui.Web.Tests/TestResults/test-results.trx 75✔️ 5s

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

21 tests were completed in 48s with 19 passed, 0 failed and 2 skipped.

Test suite Passed Failed Skipped Time
ElasticSearch.Tests.DataProvider.DataProviderBaseTest 2✔️ 183ms
ElasticSearch.Tests.DataProvider.DataProviderPaginationTest 5✔️ 2✖️ 286ms
ElasticSearch.Tests.DataProvider.DataProviderSearchTest 8✔️ 154ms
ElasticSearch.Tests.Extensions.ElasticSearchDbOptionsTest 2✔️ 10ms
ElasticSearch.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 2✔️ 77ms

✔️ 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_throws_on_validation_failed
✔️ It_validates_options

✔️ ElasticSearch.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest

✔️ It_registers_provider_and_dependencies
✔️ It_throws_on_invalid_registration

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

23 tests were completed in 6s with 23 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
MongoDb.Tests.DataProvider.DataProviderBaseTest 2✔️ 881ms
MongoDb.Tests.DataProvider.DataProviderPaginationTest 7✔️ 552ms
MongoDb.Tests.DataProvider.DataProviderSearchTest 8✔️ 442ms
MongoDb.Tests.Extensions.MongoDbOptionsTest 2✔️ 129ms
MongoDb.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 4✔️ 813ms

✔️ 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 throws on validation failed
✔️ It validates options

✔️ MongoDb.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest

✔️ It registers IMongoClient only when not registered
✔️ 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

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

Test suite Passed Failed Skipped Time
MsSql.Tests.DapperHandlers.DapperDateTimeHandlerTest 14✔️ 444ms
MsSql.Tests.DataProvider.DataProviderBaseTest 2✔️ 204ms
MsSql.Tests.DataProvider.DataProviderPaginationTest 7✔️ 274ms
MsSql.Tests.DataProvider.DataProviderSearchTest 8✔️ 145ms
MsSql.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 2✔️ 213ms

✔️ 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.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.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 provider and dependencies
✔️ It throws on invalid registration

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

38 tests were completed in 56s with 38 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
MySql.Tests.DataProvider.MariaDb.DataProviderBaseTest 2✔️ 546ms
MySql.Tests.DataProvider.MariaDb.DataProviderPaginationTest 7✔️ 282ms
MySql.Tests.DataProvider.MariaDb.DataProviderSearchTest 8✔️ 176ms
MySql.Tests.DataProvider.MySql.DataProviderBaseTest 2✔️ 523ms
MySql.Tests.DataProvider.MySql.DataProviderPaginationTest 7✔️ 31ms
MySql.Tests.DataProvider.MySql.DataProviderSearchTest 8✔️ 19ms
MySql.Tests.Extensions.SerilogUiOptionBuilderExtensionsMariaDbTest 2✔️ 114ms
MySql.Tests.Extensions.SerilogUiOptionBuilderExtensionsMySqlTest 2✔️ 31ms

✔️ 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.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.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 provider and dependencies
✔️ It throws on invalid registration

✔️ MySql.Tests.Extensions.SerilogUiOptionBuilderExtensionsMySqlTest

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

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

41 tests were completed in 39s with 41 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Postgres.Tests.DataProvider.DataProviderBaseTest 2✔️ 418ms
Postgres.Tests.DataProvider.DataProviderPaginationTest 7✔️ 324ms
Postgres.Tests.DataProvider.DataProviderSearchTest 8✔️ 182ms
Postgres.Tests.DataProvider.QueryBuilderTests 8✔️ 36ms
Postgres.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 2✔️ 166ms
Postgres.Tests.Model.LogLevelConverterTest 14✔️ 58ms

✔️ 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.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.QueryBuilderTests

✔️ BuildFetchLogsQuery ForAlternativeSink ReturnsCorrectQuery(schema: "dbo", tableName: "logs", level: "Information", searchCriteria: "Test", startDate: 2024-04-03T12:13:44.5009215+00:00, endDate: 2024-04-03T12:13:44.5009216+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-04-03T12:13:44.5009147+00:00, endDate: null, expectedQuery: "SELECT \"Message\", \"MessageTemplate\", \"Level\""···)
✔️ BuildFetchLogsQuery ForAlternativeSink ReturnsCorrectQuery(schema: "dbo", tableName: "logs", level: null, searchCriteria: null, startDate: 2024-04-03T12:13:44.5009203+00:00, endDate: 2024-04-03T12:13:44.5009204+00:00, expectedQuery: "SELECT \"Message\", \"MessageTemplate\", \"Level\""···)
✔️ BuildFetchLogsQuery ForAlternativeSink ReturnsCorrectQuery(schema: "dbo", tableName: "logs", level: null, searchCriteria: null, startDate: null, endDate: 2024-04-03T12:13:44.5009201+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\""···)

✔️ Postgres.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest

✔️ It registers provider and dependencies
✔️ 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

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

Test suite Passed Failed Skipped Time
RavenDb.Tests.DataProvider.DataProviderBaseTest 2✔️ 851ms
RavenDb.Tests.DataProvider.DataProviderPaginationTest 7✔️ 952ms
RavenDb.Tests.DataProvider.DataProviderSearchTest 8✔️ 205ms
RavenDb.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 2✔️ 983ms

✔️ 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 provider and dependencies with documentStore
✔️ It throws on invalid registration

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

75 tests were completed in 5s with 75 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Serilog.Ui.Web.Tests.Authorization.AuthorizationAsyncTest 1✔️ 148ms
Serilog.Ui.Web.Tests.Authorization.AuthorizationDefaultTest 1✔️ 864ms
Serilog.Ui.Web.Tests.Authorization.AuthorizationSyncTest 1✔️ 2s
Serilog.Ui.Web.Tests.Authorization.Filters.BasicAuthenticationFilterTest 3✔️ 62ms
Serilog.Ui.Web.Tests.Authorization.Filters.BasicAuthServiceByConfigurationTest 2✔️ 3ms
Serilog.Ui.Web.Tests.Authorization.Filters.PolicyAuthenticationFilterTest 2✔️ 15ms
Serilog.Ui.Web.Tests.Endpoints.SerilogUiAppRoutesTest 4✔️ 808ms
Serilog.Ui.Web.Tests.Endpoints.SerilogUiDecoratorsTest 6✔️ 127ms
Serilog.Ui.Web.Tests.Endpoints.SerilogUiEndpointsTest 4✔️ 306ms
Serilog.Ui.Web.Tests.Extensions.ApplicationBuilderExtensionsTest 3✔️ 940ms
Serilog.Ui.Web.Tests.Extensions.ContentInjectionTest 7✔️ 54ms
Serilog.Ui.Web.Tests.Extensions.HttpRequestExtensionsTest 5✔️ 171ms
Serilog.Ui.Web.Tests.Extensions.SerilogUiOptionBuilderExtensionsTest 8✔️ 662ms
Serilog.Ui.Web.Tests.SerilogUiMiddlewareTest 28✔️ 2s

✔️ 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 blocks the GetHome on failed authentication with custom delegate
✔️ 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 when unauthorized page access is enabled

✔️ 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.ContentInjectionTest

✔️ 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 mix scripts and stylesheets

✔️ 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.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)