diff --git a/docs/ui-modernisation/visual-correction/APPLICATION_DENSITY_SERVER_REVIEW.md b/docs/ui-modernisation/visual-correction/APPLICATION_DENSITY_SERVER_REVIEW.md new file mode 100644 index 00000000..36f23931 --- /dev/null +++ b/docs/ui-modernisation/visual-correction/APPLICATION_DENSITY_SERVER_REVIEW.md @@ -0,0 +1,11 @@ +# Application table server verification + +Application presentation and browser test source `64603f5602e0efa03c33abd46dc4380e58c99e5a` passed all four table-density browser cases in 2.2 minutes. The API was built from `aac0f3b3` before the subsequent rules integration. Playwright started its own API and Next development server with a unique temporary SQLite data root. AI/import/search-alert workers were disabled. External browser requests were blocked. + +The cases cover English/Bokmål, both themes, both densities and 320, 390, 768, 1024 and 1440 px. They verify selection persistence, keyboard scroll/focus, existing status PATCH, workspace/back navigation, confirmed synthetic Trash/Restore, column preferences and held/error/retry behaviour. These operations affect disposable fixture accounts only. Scoped axe assertions passed. Forty screenshots are retained with the raw log and file hashes in `evidence/application-actions-server/RECEIPT.json`. + +The first attempt found stale mobile menu selectors. The next attempt found a long custom status reducing the selected phone title to about 90 px and a selected-row listing link at 4.4 contrast. The title group now wraps earlier, and both listing links use the existing theme-aware MUI Link. The final run retained the 150 px title assertion, 44 px phone targets and contrast checks. Earlier failures are retained. The light-English pilot overlaps the final four cases. + +The API log includes EF unique-key errors during concurrent checklist seeding. Independent source review found the existing seed recovery catches the conflict, detaches its attempted inserts and reloads verified winning rows. The existing concurrent-initialization regression passed in the separate 35-test rules run. Recovery of individual log entries is inferred because the log lacks request correlation. Local migration and unencrypted test-key warnings also remain in the raw receipt. + +The integrated `ce7e4866` source separately passed 63 selected frontend tests and 35 backend tests after the rules and discovery-collation fixes. Earlier runs overlap those totals. This server run predates the discovery drawer increment and does not qualify that increment. Native devices, MariaDB, provider/model access, full A3 acceptance, integrated security and release qualification remain open. diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/API-BUILD.txt b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/API-BUILD.txt new file mode 100644 index 00000000..4bcf0f26 --- /dev/null +++ b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/API-BUILD.txt @@ -0,0 +1,7 @@ + JobTrackerApi -> C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi\bin\Release\net9.0\JobTrackerApi.dll + +Build succeeded. + 0 Warning(s) + 0 Error(s) + +Time Elapsed 00:00:03.60 diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/BROWSER.txt b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/BROWSER.txt new file mode 100644 index 00000000..a3f4ad6a --- /dev/null +++ b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/BROWSER.txt @@ -0,0 +1,367 @@ +[WebServer] Using launch settings from ..\JobTrackerApi\Properties\launchSettings.json... +[WebServer] warn: Microsoft.EntityFrameworkCore.Migrations[30200] +[WebServer] An operation of type 'SqlOperation' will be attempted while a rebuild of table 'JobApplications' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration. +[WebServer] warn: Microsoft.EntityFrameworkCore.Migrations[20410] +[WebServer] The migration operation 'PRAGMA foreign_keys = 0; +[WebServer] ' from migration 'AddJobEntityAndProspectStages' cannot be executed in a transaction. If the app is terminated or an unrecoverable error occurs while this operation is being executed then the migration will be left in a partially applied state and would need to be reverted manually before it can be applied again. Create a separate migration that contains just this operation. +[WebServer] warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] +[WebServer] No XML encryptor configured. Key {2fa1cb79-2bd9-4a65-aab6-cdf9fcfd4bc9} may be persisted to storage in unencrypted form. +[WebServer] (node:36792) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[WebServer] (Use `node --trace-warnings ...` to show where the warning was created) +[WebServer] (node:36644) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[WebServer] (Use `node --trace-warnings ...` to show where the warning was created) + +Running 4 tests using 1 worker + +(node:5284) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[WebServer] fail: Microsoft.EntityFrameworkCore.Database.Command[20102] +[WebServer] Failed executing DbCommand (2ms) [Parameters=[@p0='?' (Size = 15), @p1='?' (Size = 11), @p2='?' (DbType = DateTimeOffset), @p3='?' (DbType = DateTimeOffset), @p4='?' (Size = 74), @p5='?' (DbType = Boolean), @p6='?' (DbType = Boolean), @p7='?' (DbType = Int32), @p8='?' (Size = 36), @p9='?' (Size = 11), @p10='?' (DbType = Int32), @p11='?' (Size = 7), @p12='?' (Size = 18), @p13='?' (Size = 18), @p14='?' (DbType = DateTimeOffset)], CommandType='Text', CommandTimeout='30'] +[WebServer] INSERT INTO "ApplicationChecklistItems" ("AutoSignal", "Category", "CompletedAt", "CreatedAtUtc", "Description", "IsAutoCompleted", "IsSystemGenerated", "JobApplicationId", "OwnerUserId", "Section", "SortOrder", "Status", "SystemKey", "Title", "UpdatedAtUtc") +[WebServer] VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14) +[WebServer] RETURNING "Id"; +[WebServer] fail: Microsoft.EntityFrameworkCore.Update[10000] +[WebServer] An exception occurred in the database while saving changes for context type 'JobTrackerApi.Data.JobTrackerContext'. +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] fail: Microsoft.EntityFrameworkCore.Database.Command[20102] +[WebServer] Failed executing DbCommand (0ms) [Parameters=[@p0='?' (Size = 15), @p1='?' (Size = 11), @p2='?' (DbType = DateTimeOffset), @p3='?' (DbType = DateTimeOffset), @p4='?' (Size = 74), @p5='?' (DbType = Boolean), @p6='?' (DbType = Boolean), @p7='?' (DbType = Int32), @p8='?' (Size = 36), @p9='?' (Size = 11), @p10='?' (DbType = Int32), @p11='?' (Size = 7), @p12='?' (Size = 18), @p13='?' (Size = 18), @p14='?' (DbType = DateTimeOffset)], CommandType='Text', CommandTimeout='30'] +[WebServer] INSERT INTO "ApplicationChecklistItems" ("AutoSignal", "Category", "CompletedAt", "CreatedAtUtc", "Description", "IsAutoCompleted", "IsSystemGenerated", "JobApplicationId", "OwnerUserId", "Section", "SortOrder", "Status", "SystemKey", "Title", "UpdatedAtUtc") +[WebServer] VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14) +[WebServer] RETURNING "Id"; +[WebServer] fail: Microsoft.EntityFrameworkCore.Update[10000] +[WebServer] An exception occurred in the database while saving changes for context type 'JobTrackerApi.Data.JobTrackerContext'. +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbCo[WebServer] ntext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) + ok 1 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/en table and cards preserve behavior at both densities (30.5s) +[WebServer] fail: Microsoft.EntityFrameworkCore.Database.Command[20102] +[WebServer] Failed executing DbCommand (0ms) [Parameters=[@p0='?' (Size = 15), @p1='?' (Size = 11), @p2='?' (DbType = DateTimeOffset), @p3='?' (DbType = DateTimeOffset), @p4='?' (Size = 74), @p5='?' (DbType = Boolean), @p6='?' (DbType = Boolean), @p7='?' (DbType = Int32), @p8='?' (Size = 36), @p9='?' (Size = 11), @p10='?' (DbType = Int32), @p11='?' (Size = 7), @p12='?' (Size = 18), @p13='?' (Size = 18), @p14='?' (DbType = DateTimeOffset)], CommandType='Text', CommandTimeout='30'] +[WebServer] INSERT INTO "ApplicationChecklistItems" ("AutoSignal", "Category", "CompletedAt", "CreatedAtUtc", "Description", "IsAutoCompleted", "IsSystemGenerated", "JobApplicationId", "OwnerUserId", "Section", "SortOrder", "Status", "SystemKey", "Title", "UpdatedAtUtc") +[WebServer] VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14) +[WebServer] RETURNING "Id"; +[WebServer] fail: Microsoft.EntityFrameworkCore.Update[10000] +[WebServer] An exception occurred in the database while saving changes for context type 'JobTrackerApi.Data.JobTrackerContext'. +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] fail: Microsoft.EntityFrameworkCore.Database.Command[20102] +[WebServer] Failed executing DbCommand (0ms) [Parameters=[@p0='?' (Size = 15), @p1='?' (Size = 11), @p2='?' (DbType = DateTimeOffset), @p3='?' (DbType = DateTimeOffset), @p4='?' (Size = 74), @p5='?' (DbType = Boolean), @p6='?' (DbType = Boolean), @p7='?' (DbType = Int32), @p8='?' (Size = 36), @p9='?' (Size = 11), @p10='?' (DbType = Int32), @p11='?' (Size = 7), @p12='?' (Size = 18), @p13='?' (Size = 18), @p14='?' (DbType = DateTimeOffset)], CommandType='Text', CommandTimeout='30'] +[WebServer] INSERT INTO "ApplicationChecklistItems" ("AutoSignal", "Category", "CompletedAt", "CreatedAtUtc", "Description", "IsAutoCompleted", "IsSystemGenerated", "JobApplicationId", "OwnerUserId", "Section", "SortOrder", "Status", "SystemKey", "Title", "UpdatedAtUtc") +[WebServer] VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14) +[WebServer] RETURNING "Id"; +[WebServer] fail: Microsoft.EntityFrameworkCore.Update[10000] +[WebServer] An exception occurred in the database while saving changes for context type 'JobTrackerApi.Data.JobTrackerContext'. +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) + ok 2 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/nb table and cards preserve behavior at both densities (27.7s) +[WebServer] fail: Microsoft.EntityFrameworkCore.Database.Command[20102] +[WebServer] Failed executing DbCommand (0ms) [Parameters=[@p0='?' (Size = 15), @p1='?' (Size = 11), @p2='?' (DbType = DateTimeOffset), @p3='?' (DbType = DateTimeOffset), @p4='?' (Size = 74), @p5='?' (DbType = Boolean), @p6='?' (DbType = Boolean), @p7='?' (DbType = Int32), @p8='?' (Size = 36), @p9='?' (Size = 11), @p10='?' (DbType = Int32), @p11='?' (Size = 7), @p12='?' (Size = 18), @p13='?' (Size = 18), @p14='?' (DbType = DateTimeOffset)], CommandType='Text', CommandTimeout='30'] +[WebServer] INSERT INTO "ApplicationChecklistItems" ("AutoSignal", "Category", "CompletedAt", "CreatedAtUtc", "Description", "IsAutoCompleted", "IsSystemGenerated", "JobApplicationId", "OwnerUserId", "Section", "SortOrder", "Status", "SystemKey", "Title", "UpdatedAtUtc") +[WebServer] VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14) +[WebServer] RETURNING "Id"; +[WebServer] fail: Microsoft.EntityFrameworkCore.Update[10000] +[WebServer] An exception occurred in the database while saving changes for context type 'JobTrackerApi.Data.JobTrackerContext'. +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] fail: Microsoft.EntityFrameworkCore.Database.Command[20102] +[WebServer] Failed executing DbCommand (0ms) [Parameters=[@p0='?' (Size = 15), @p1='?' (Size = 11), @p2='?' (DbType = DateTimeOffset), @p3='?' (DbType = DateTimeOffset), @p4='?' (Size = 74), @p5='?' (DbType = Boolean), @p6='?' (DbType = Boolean), @p7='?' (DbType = Int32), @p8='?' (Size = 36), @p9='?' (Size = 11), @p10='?' (DbType = Int32), @p11='?' (Size = 7), @p12='?' (Size = 18), @p13='?' (Size = 18), @p14='?' (DbType = DateTimeOffset)], CommandType='Text', CommandTimeout='30'] +[WebServer] INSERT INTO "ApplicationChecklistItems" ("AutoSignal", "Category", "CompletedAt", "CreatedAtUtc", "Description", "IsAutoCompleted", "IsSystemGenerated", "JobApplicationId", "OwnerUserId", "Section", "SortOrder", "Status", "SystemKey", "Title", "UpdatedAtUtc") +[WebServer] VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14) +[WebServer] RETURNING "Id"; +[WebServer] fail: Microsoft.EntityFrameworkCore.Update[10000] +[WebServer] An exception occurred in the database while saving changes for context type 'JobTrackerApi.Data.JobTrackerContext'. +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) + ok 3 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/en table and cards preserve behavior at both densities (30.3s) +[WebServer] fail: Microsoft.EntityFrameworkCore.Database.Command[20102] +[WebServer] Failed executing DbCommand (0ms) [Parameters=[@p0='?' (Size = 15), @p1='?' (Size = 11), @p2='?' (DbType = DateTimeOffset), @p3='?' (DbType = DateTimeOffset), @p4='?' (Size = 74), @p5='?' (DbType = Boolean), @p6='?' (DbType = Boolean), @p7='?' (DbType = Int32), @p8='?' (Size = 36), @p9='?' (Size = 11), @p10='?' (DbType = Int32), @p11='?' (Size = 7), @p12='?' (Size = 18), @p13='?' (Size = 18), @p14='?' (DbType = DateTimeOffset)], CommandType='Text', CommandTimeout='30'] +[WebServer] INSERT INTO "ApplicationChecklistItems" ("AutoSignal", "Category", "CompletedAt", "CreatedAtUtc", "Description", "IsAutoCompleted", "IsSystemGenerated", "JobApplicationId", "OwnerUserId", "Section", "SortOrder", "Status", "SystemKey", "Title", "UpdatedAtUtc") +[WebServer] VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14) +[WebServer] RETURNING "Id"; +[WebServer] fail: Microsoft.EntityFrameworkCore.Update[10000] +[WebServer] An exception occurred in the database while saving changes for context type 'JobTrackerApi.Data.JobTrackerContext'. +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] fail: Microsoft.EntityFrameworkCore.Database.Command[20102] +[WebServer] Failed executing DbCommand (0ms) [Parameters=[@p0='?' (Size = 15), @p1='?' (Size = 11), @p2='?' (DbType = DateTimeOffset), @p3='?' (DbType = DateTimeOffset), @p4='?' (Size = 74), @p5='?' (DbType = Boolean), @p6='?' (DbType = Boolean), @p7='?' (DbType = Int32), @p8='?' (Size = 36), @p9='?' (Size = 11), @p10='?' (DbType = Int32), @p11='?' (Size = 7), @p12='?' (Size = 18), @p13='?' (Size = 18), @p14='?' (DbType = DateTimeOffset)], CommandType='Text', CommandTimeout='30'] +[WebServer] INSERT INTO "ApplicationChecklistItems" ("AutoSignal", "Category", "CompletedAt", "CreatedAtUtc", "Description", "IsAutoCompleted", "IsSystemGenerated", "JobApplicationId", "OwnerUserId", "Section", "SortOrder", "Status", "SystemKey", "Title", "UpdatedAtUtc") +[WebServer] VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14) +[WebServer] RETURNING "Id"; +[WebServer] fail: Microsoft.EntityFrameworkCore.Update[10000] +[WebServer] An exception occurred in the database while saving changes for context type 'JobTrackerApi.Data.JobTrackerContext'. +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) + ok 4 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/nb table and cards preserve behavior at both densities (27.7s) + + 4 passed (2.2m) diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/FIRST-BROWSER.txt b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/FIRST-BROWSER.txt new file mode 100644 index 00000000..0f0e1d8d --- /dev/null +++ b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/FIRST-BROWSER.txt @@ -0,0 +1,350 @@ +[WebServer] Using launch settings from ..\JobTrackerApi\Properties\launchSettings.json... +[WebServer] warn: Microsoft.EntityFrameworkCore.Migrations[30200] +[WebServer] An operation of type 'SqlOperation' will be attempted while a rebuild of table 'JobApplications' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration. +[WebServer] warn: Microsoft.EntityFrameworkCore.Migrations[20410] +[WebServer] The migration operation 'PRAGMA foreign_keys = 0; +[WebServer] ' from migration 'AddJobEntityAndProspectStages' cannot be executed in a transaction. If the app is terminated or an unrecoverable error occurs while this operation is being executed then the migration will be left in a partially applied state and would need to be reverted manually before it can be applied again. Create a separate migration that contains just this operation. +[WebServer] warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] +[WebServer] No XML encryptor configured. Key {cbfe3c75-02c3-4805-913d-cb802537967c} may be persisted to storage in unencrypted form. +[WebServer] (node:24112) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[WebServer] (Use `node --trace-warnings ...` to show where the warning was created) +[WebServer] (node:9568) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[WebServer] (Use `node --trace-warnings ...` to show where the warning was created) + +Running 4 tests using 1 worker + +(node:13532) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + x 1 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/en table and cards preserve behavior at both densities (16.9s) +(node:16656) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + x 2 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/nb table and cards preserve behavior at both densities (17.2s) +(node:34188) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + x 3 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/en table and cards preserve behavior at both densities (8.6s) +(node:2484) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + x 4 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/nb table and cards preserve behavior at both densities (6.5s) + + + 1) [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/en table and cards preserve behavior at both densities + + Error: expect(locator).toBeVisible() failed + + Locator: getByRole('menuitem', { name: 'Offer', exact: true }) + Expected: visible + Timeout: 5000ms + Error: element(s) not found + + Call log: + - Expect "toBeVisible" with timeout 5000ms + - waiting for getByRole('menuitem', { name: 'Offer', exact: true }) + + + 141 | await capture(page, info, `jobs-top-phone-${suffix}`); + 142 | await first.getByRole("button", { name: new RegExp(`^${t.jobTableActions}:`) }).click(); + > 143 | await expect(page.getByRole("menuitem", { name: t.statusOffer, exact: true })).toBeVisible(); + | ^ + 144 | await page.keyboard.press("Escape"); + 145 | } + 146 | // Geometric containment alone misses a title squeezed into one-letter lines. + at C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:143:90 + + attachment #1: jobs-top-desktop-light-en (image/png) ─────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\attachments\jobs-top-desktop-light-en-f1416f5079e9dae7363d607aa6388e58f032e248.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: desktop-comfortable-light-en (image/png) ──────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\attachments\desktop-comfortable-light-en-660a3212eb13e3b829a092f58183ba46d2795276.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #4: desktop-compact-light-en (image/png) ──────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\attachments\desktop-compact-light-en-97b5a9c08e474c6eaaba7612f2ae544d9d08eafd.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #7: jobs-top-phone-light-en (image/png) ───────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\attachments\jobs-top-phone-light-en-3de02167367b95b02cc2ad39b43c4e88c8f119c7.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #8: screenshot (image/png) ────────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\error-context.md + + attachment #10: trace (application/zip) ──────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\trace.zip + Usage: + + npx playwright show-trace test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 2) [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/nb table and cards preserve behavior at both densities + + Error: expect(locator).toBeVisible() failed + + Locator: getByRole('menuitem', { name: 'Tilbud', exact: true }) + Expected: visible + Timeout: 5000ms + Error: element(s) not found + + Call log: + - Expect "toBeVisible" with timeout 5000ms + - waiting for getByRole('menuitem', { name: 'Tilbud', exact: true }) + + + 141 | await capture(page, info, `jobs-top-phone-${suffix}`); + 142 | await first.getByRole("button", { name: new RegExp(`^${t.jobTableActions}:`) }).click(); + > 143 | await expect(page.getByRole("menuitem", { name: t.statusOffer, exact: true })).toBeVisible(); + | ^ + 144 | await page.keyboard.press("Escape"); + 145 | } + 146 | // Geometric containment alone misses a title squeezed into one-letter lines. + at C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:143:90 + + attachment #1: jobs-top-desktop-light-nb (image/png) ─────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\attachments\jobs-top-desktop-light-nb-91cd77b8515e2fb9e6d33a692e137d751b850944.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: desktop-comfortable-light-nb (image/png) ──────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\attachments\desktop-comfortable-light-nb-7ac29ea19432eb0c09ddd49515a153b25212a5b3.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #4: desktop-compact-light-nb (image/png) ──────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\attachments\desktop-compact-light-nb-dcc8a8f6c161069e74eaf09284a08f927ecfb487.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #7: jobs-top-phone-light-nb (image/png) ───────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\attachments\jobs-top-phone-light-nb-9c2d93ec71b3df07b88d6e4f2fa11d5bd70fce4b.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #8: screenshot (image/png) ────────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\error-context.md + + attachment #10: trace (application/zip) ──────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\trace.zip + Usage: + + npx playwright show-trace test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 3) [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/en table and cards preserve behavior at both densities + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 64 + + - Array [] + + Array [ + + Object { + + "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds", + + "help": "Elements must meet minimum color contrast ratio thresholds", + + "helpUrl": "https://dequeuniversity.com/rules/axe/4.13/color-contrast?application=playwright", + + "id": "color-contrast", + + "impact": "serious", + + "nodes": Array [ + + Object { + + "all": Array [], + + "any": Array [ + + Object { + + "data": Object { + + "bgColor": "#443b53", + + "contrastRatio": 4.4, + + "expectedContrastRatio": "4.5:1", + + "fgColor": "#9e9eff", + + "fontSize": "10.5pt (14px)", + + "fontWeight": "normal", + + "messageKey": null, + + }, + + "id": "color-contrast", + + "impact": "serious", + + "message": "Element has insufficient color contrast of 4.4 (foreground color: #9e9eff, background color: #443b53, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + + "relatedNodes": Array [ + + Object { + + "html": "", + + "target": Array [ + + ".css-11gbcel-MuiTableRow-root", + + ], + + }, + + Object { + + "html": "
", + + "target": Array [ + + ".css-1j6eq80-MuiPaper-root", + + ], + + }, + + ], + + }, + + ], + + "failureSummary": "Fix any of the following: + + Element has insufficient color contrast of 4.4 (foreground color: #9e9eff, background color: #443b53, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + + "html": "Link", + + "impact": "serious", + + "none": Array [], + + "target": Array [ + + ".css-11gbcel-MuiTableRow-root > .css-1ingqjh-MuiTableCell-root:nth-child(9) > a[href$=\"listing\"][target=\"_blank\"][rel=\"noreferrer\"]", + + ], + + }, + + ], + + "tags": Array [ + + "cat.color", + + "wcag2aa", + + "wcag143", + + "TTv5", + + "TT13.c", + + "EN-301-549", + + "EN-9.1.4.3", + + "ACT", + + "RGAAv4", + + "RGAA-3.2.1", + + ], + + }, + + ] + + 52 | const result = await new AxeBuilder({ page }).withTags(["wcag2a", "wcag2aa", "wcag21a", "wcag21aa"]).analyze(); + 53 | await info.attach(`${name}-axe`, { body: JSON.stringify({ violations: result.violations, incomplete: result.incomplete }), contentType: "application/json" }); + > 54 | expect(result.violations).toEqual([]); + | ^ + 55 | } + 56 | async function keyboardFocus(page: Page, target: Locator) { + 57 | await target.focus(); + at scan (C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:54:29) + at C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:125:7 + + attachment #1: jobs-top-desktop-dark-en (image/png) ──────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\attachments\jobs-top-desktop-dark-en-9fc9d48bee9b6d70fd4bf7af72615f91740efea8.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: desktop-comfortable-dark-en (image/png) ───────────────────────────────────────── + test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\attachments\desktop-comfortable-dark-en-5bc72635596b9a7e3fa3211185a0fbfebaa6490f.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #4: screenshot (image/png) ────────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\error-context.md + + attachment #6: trace (application/zip) ───────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\trace.zip + Usage: + + npx playwright show-trace test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 4) [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/nb table and cards preserve behavior at both densities + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 64 + + - Array [] + + Array [ + + Object { + + "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds", + + "help": "Elements must meet minimum color contrast ratio thresholds", + + "helpUrl": "https://dequeuniversity.com/rules/axe/4.13/color-contrast?application=playwright", + + "id": "color-contrast", + + "impact": "serious", + + "nodes": Array [ + + Object { + + "all": Array [], + + "any": Array [ + + Object { + + "data": Object { + + "bgColor": "#443b53", + + "contrastRatio": 4.4, + + "expectedContrastRatio": "4.5:1", + + "fgColor": "#9e9eff", + + "fontSize": "10.5pt (14px)", + + "fontWeight": "normal", + + "messageKey": null, + + }, + + "id": "color-contrast", + + "impact": "serious", + + "message": "Element has insufficient color contrast of 4.4 (foreground color: #9e9eff, background color: #443b53, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + + "relatedNodes": Array [ + + Object { + + "html": "", + + "target": Array [ + + ".css-11gbcel-MuiTableRow-root", + + ], + + }, + + Object { + + "html": "
", + + "target": Array [ + + ".css-1j6eq80-MuiPaper-root", + + ], + + }, + + ], + + }, + + ], + + "failureSummary": "Fix any of the following: + + Element has insufficient color contrast of 4.4 (foreground color: #9e9eff, background color: #443b53, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + + "html": "Lenke", + + "impact": "serious", + + "none": Array [], + + "target": Array [ + + ".css-11gbcel-MuiTableRow-root > .css-1ingqjh-MuiTableCell-root:nth-child(9) > a[href$=\"listing\"][target=\"_blank\"][rel=\"noreferrer\"]", + + ], + + }, + + ], + + "tags": Array [ + + "cat.color", + + "wcag2aa", + + "wcag143", + + "TTv5", + + "TT13.c", + + "EN-301-549", + + "EN-9.1.4.3", + + "ACT", + + "RGAAv4", + + "RGAA-3.2.1", + + ], + + }, + + ] + + 52 | const result = await new AxeBuilder({ page }).withTags(["wcag2a", "wcag2aa", "wcag21a", "wcag21aa"]).analyze(); + 53 | await info.attach(`${name}-axe`, { body: JSON.stringify({ violations: result.violations, incomplete: result.incomplete }), contentType: "application/json" }); + > 54 | expect(result.violations).toEqual([]); + | ^ + 55 | } + 56 | async function keyboardFocus(page: Page, target: Locator) { + 57 | await target.focus(); + at scan (C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:54:29) + at C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:125:7 + + attachment #1: jobs-top-desktop-dark-nb (image/png) ──────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\attachments\jobs-top-desktop-dark-nb-de0939d685d6e747b8d560d1b6de29d02e5730c4.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: desktop-comfortable-dark-nb (image/png) ───────────────────────────────────────── + test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\attachments\desktop-comfortable-dark-nb-67fffcde180e1e34d26480532314959bb069d9e5.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #4: screenshot (image/png) ────────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\error-context.md + + attachment #6: trace (application/zip) ───────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\trace.zip + Usage: + + npx playwright show-trace test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 4 failed + [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/en table and cards preserve behavior at both densities + [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/nb table and cards preserve behavior at both densities + [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/en table and cards preserve behavior at both densities + [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/nb table and cards preserve behavior at both densities diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/INTEGRATED-BACKEND.txt b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/INTEGRATED-BACKEND.txt new file mode 100644 index 00000000..7f81b672 --- /dev/null +++ b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/INTEGRATED-BACKEND.txt @@ -0,0 +1,11 @@ + JobTrackerApi -> C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi\bin\Debug\net9.0\JobTrackerApi.dll + PdfBrowserStub -> C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\PdfBrowserStub\bin\Debug\net9.0\PdfBrowserStub.dll + JobTrackerApi.Tests -> C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll +Test run for C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\bin\Debug\net9.0\JobTrackerApi.Tests.dll (.NETCoreApp,Version=v9.0) +VSTest version 17.14.1 (x64) + +Starting test execution, please wait... +A total of 1 test files matched the specified pattern. +Results File: C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\JobTrackerApi.Tests\TestResults\rules-a3-integration.trx + +Passed! - Failed: 0, Passed: 35, Skipped: 0, Total: 35, Duration: 6 s - JobTrackerApi.Tests.dll (net9.0) diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/INTEGRATED-FRONTEND.txt b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/INTEGRATED-FRONTEND.txt new file mode 100644 index 00000000..a8dbcc45 --- /dev/null +++ b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/INTEGRATED-FRONTEND.txt @@ -0,0 +1,10 @@ + +> job-tracker-ui@0.1.0 test +> jest --runInBand job-table-density.test.tsx jobs-view-integration.test.tsx workflow-trust-signals.test.tsx job-discovery.test.tsx + + +Test Suites: 4 passed, 4 total +Tests: 63 passed, 63 total +Snapshots: 0 total +Time: 30.949 s, estimated 36 s +Ran all test suites matching job-table-density.test.tsx|jobs-view-integration.test.tsx|workflow-trust-signals.test.tsx|job-discovery.test.tsx. diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/LAST-RUN.json b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/LAST-RUN.json new file mode 100644 index 00000000..cbcc1fba --- /dev/null +++ b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/LAST-RUN.json @@ -0,0 +1,4 @@ +{ + "status": "passed", + "failedTests": [] +} \ No newline at end of file diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/PILOT.txt b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/PILOT.txt new file mode 100644 index 00000000..3af7dd19 --- /dev/null +++ b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/PILOT.txt @@ -0,0 +1,106 @@ +[WebServer] Using launch settings from ..\JobTrackerApi\Properties\launchSettings.json... +[WebServer] warn: Microsoft.EntityFrameworkCore.Migrations[30200] +[WebServer] An operation of type 'SqlOperation' will be attempted while a rebuild of table 'JobApplications' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration. +[WebServer] warn: Microsoft.EntityFrameworkCore.Migrations[20410] +[WebServer] The migration operation 'PRAGMA foreign_keys = 0; +[WebServer] ' from migration 'AddJobEntityAndProspectStages' cannot be executed in a transaction. If the app is terminated or an unrecoverable error occurs while this operation is being executed then the migration will be left in a partially applied state and would need to be reverted manually before it can be applied again. Create a separate migration that contains just this operation. +[WebServer] warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] +[WebServer] No XML encryptor configured. Key {bf7abd10-cd7a-42ae-b86b-3e9561cabe4a} may be persisted to storage in unencrypted form. +[WebServer] (node:38464) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[WebServer] (Use `node --trace-warnings ...` to show where the warning was created) +[WebServer] (node:17336) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[WebServer] (Use `node --trace-warnings ...` to show where the warning was created) + +Running 1 test using 1 worker + +(node:35684) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) +[WebServer] fail: Microsoft.EntityFrameworkCore.Database.Command[20102] +[WebServer] Failed executing DbCommand (2ms) [Parameters=[@p0='?' (Size = 15), @p1='?' (Size = 11), @p2='?' (DbType = DateTimeOffset), @p3='?' (DbType = DateTimeOffset), @p4='?' (Size = 74), @p5='?' (DbType = Boolean), @p6='?' (DbType = Boolean), @p7='?' (DbType = Int32), @p8='?' (Size = 36), @p9='?' (Size = 11), @p10='?' (DbType = Int32), @p11='?' (Size = 7), @p12='?' (Size = 18), @p13='?' (Size = 18), @p14='?' (DbType = DateTimeOffset)], CommandType='Text', CommandTimeout='30'] +[WebServer] INSERT INTO "ApplicationChecklistItems" ("AutoSignal", "Category", "CompletedAt", "CreatedAtUtc", "Description", "IsAutoCompleted", "IsSystemGenerated", "JobApplicationId", "OwnerUserId", "Section", "SortOrder", "Status", "SystemKey", "Title", "UpdatedAtUtc") +[WebServer] VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14) +[WebServer] RETURNING "Id"; +[WebServer] fail: Microsoft.EntityFrameworkCore.Update[10000] +[WebServer] An exception occurred in the database while saving changes for context type 'JobTrackerApi.Data.JobTrackerContext'. +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] fail: Microsoft.EntityFrameworkCore.Database.Command[20102] +[WebServer] Failed executing DbCommand (1ms) [Parameters=[@p0='?' (Size = 15), @p1='?' (Size = 11), @p2='?' (DbType = DateTimeOffset), @p3='?' (DbType = DateTimeOffset), @p4='?' (Size = 74), @p5='?' (DbType = Boolean), @p6='?' (DbType = Boolean), @p7='?' (DbType = Int32), @p8='?' (Size = 36), @p9='?' (Size = 11), @p10='?' (DbType = Int32), @p11='?' (Size = 7), @p12='?' (Size = 18), @p13='?' (Size = 18), @p14='?' (DbType = DateTimeOffset)], CommandType='Text', CommandTimeout='30'] +[WebServer] INSERT INTO "ApplicationChecklistItems" ("AutoSignal", "Category", "CompletedAt", "CreatedAtUtc", "Description", "IsAutoCompleted", "IsSystemGenerated", "JobApplicationId", "OwnerUserId", "Section", "SortOrder", "Status", "SystemKey", "Title", "UpdatedAtUtc") +[WebServer] VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, @p14) +[WebServer] RETURNING "Id"; +[WebServer] fail: Microsoft.EntityFrameworkCore.Update[10000] +[WebServer] An exception occurred in the database while saving changes for context type 'JobTrackerApi.Data.JobTrackerContext'. +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details. +[WebServer] ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: ApplicationChecklistItems.JobApplicationId, ApplicationChecklistItems.SystemKey'. +[WebServer] at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) +[WebServer] at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) +[WebServer] at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] --- End of inner exception stack trace --- +[WebServer] at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.Storage.RelationalDatabase.SaveChangesAsync(IList`1 entries, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) +[WebServer] at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken) + ok 1 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/en table and cards preserve behavior at both densities (28.9s) + + 1 passed (43.1s) diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/RECEIPT.json b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/RECEIPT.json new file mode 100644 index 00000000..4b488ac1 --- /dev/null +++ b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/RECEIPT.json @@ -0,0 +1,73 @@ +{ + "browserSource": "64603f5602e0efa03c33abd46dc4380e58c99e5a", + "integrationSource": "ce7e48665ca681e1c059cb576a068957a8d562d5", + "browserCases": 4, + "frontendTests": 63, + "backendTests": 35, + "nativeTrxRawSha256": "521f3e2c6a4ac4c2fd0bc6dcde58d5df6dbcf52fd44bd6024094d74f116b8ac5", + "sources": { + "job-tracker-ui/src/components/JobTable.tsx": { + "commit": "64603f5602e0efa03c33abd46dc4380e58c99e5a", + "sha256": "7d970ba4182ed49ebb4431ad95e51f1507b2292d1d537b95b5fa7c60606274c6" + }, + "job-tracker-ui/e2e/table-density.spec.ts": { + "commit": "64603f5602e0efa03c33abd46dc4380e58c99e5a", + "sha256": "f1aa88bf6d6fbfc4c156b26fc90f1ecfe1c4e390316d99cea6e5b8816e77bb05" + }, + "JobTrackerApi/Controllers/JobApplicationsController.cs": { + "commit": "aac0f3b3a9b452b48126ddaf26e1837eeadd2f6d", + "sha256": "ba1c01766dd880fe46d18669097b26dafe50c2ffdd69adc39fa9e56c2ae5ce93" + } + }, + "files": { + "API-BUILD.txt": "df8631d03cf4977f82c2a87166b0e2341ff5b9a6e0072cb7a49800709d3fc9ca", + "BROWSER.txt": "ee3a0e87a3fd14e1f754dc830fa11a2b07c39e3eaf3b694f82968642211b6f9b", + "desktop-comfortable-dark-en.png": "f015ff523a8a1c3e2f7675db57af9716bec3a329ab3db24a2f1c8e57503c8938", + "desktop-comfortable-dark-nb.png": "12781c10a970728c51db0e037bceacedf6750336f2e8aec38be903d64c0f621c", + "desktop-comfortable-light-en.png": "399ca52868d012da45af84853f8e622d0af8e892d89039d0ea7dc97e7d798687", + "desktop-comfortable-light-nb.png": "61f64cb71d31bc6e269c41d21fe1cf2dfafd6ee00b3a554d6c78180bdc01b68e", + "desktop-compact-dark-en.png": "636fb8a2b16b9a1880589f0ecc810d6311042a5ff317480f8eb7f97ce99f79a2", + "desktop-compact-dark-nb.png": "db5df96c259a38464859b65d399de7d9730ba32a48bd70977e114893ac24fd34", + "desktop-compact-light-en.png": "eb8fd8a63ca4e6800e88adca946310007f591b644f2ea367d0d4bd2c05bb5b38", + "desktop-compact-light-nb.png": "6807467b37762399f41d89d15514cbf2423e575ec1852b8c1d577e439e43d45f", + "FIRST-BROWSER.txt": "6e3cbc5953851b85667b66c4ce83046e5cfa5e46a2c2120eda68adaeff8208cd", + "INTEGRATED-BACKEND.txt": "174d39e26772e3cb7bf2f211e2c187f59e2fa04afbab75da9826aa9a55434972", + "INTEGRATED-FRONTEND.txt": "5c6a985ee4b2b402b187af143dfea28dfefdd782d0fc4dce9149c28e566c86eb", + "jobs-top-desktop-dark-en.png": "fdf472f7453316c5c7c841e368eb3208d656ce4866c0ca3aae509ebafec53362", + "jobs-top-desktop-dark-nb.png": "a4a50d1aaa9de922c1ed63f05f2f68f5536c0264b60bb0a5aa68ee9122f75d45", + "jobs-top-desktop-light-en.png": "f424c9cbfcf29f4efa9b0c5be21b6aaf957a25d4c8064a9fe0df06f83817ca92", + "jobs-top-desktop-light-nb.png": "e403c66690bb25ba7a983959aa45f0cb27de9a495dafab4d0860df556b6bfbfd", + "jobs-top-phone-dark-en.png": "f018e47bec2a670551c93e17f0871858b1bcdc335ecd01fcaba2d98393ea56d2", + "jobs-top-phone-dark-nb.png": "e51593d61abf63be17ba1158542c9c5d27805e670b92daf0d63a4f77d68ec87c", + "jobs-top-phone-light-en.png": "d1111616ba9a0fa6fcec26638448ca28bd61fd7887e203e73707754c1a775889", + "jobs-top-phone-light-nb.png": "add515e6e4dff31a225a235bf6e33659329caa3d0b5754fe590b095bd047fd01", + "LAST-RUN.json": "91d1c43004802cd49950d78eb11c8fa7d05da8ffffe219a8b13b2f561bc00903", + "list-error-dark-en.png": "5a38b2442718e1acfdbb8cc7372bd501fe50d00e042925131fd1e79ef05a81cd", + "list-error-dark-nb.png": "dfaab0803dd131a92b45bfb58bafadec45978ebbab9fa7cf5352ef215ea69c7c", + "list-error-light-en.png": "a928d7e5900d1572ea6a78ca689f315dbbd162fcd9b1859e7aafa01845584d1a", + "list-error-light-nb.png": "dc27e36f7e41a9135d6ea5fade8d23325c090f0ed1dbc62cc7b8726ec175c579", + "phone-320-comfortable-dark-en.png": "ec27177f766ad1aba6267e82f0ff31007540ce7276a9f223e230f2534d256624", + "phone-320-comfortable-dark-nb.png": "55dfb3ee461a49cd3c71cd5aa2ca2a91ab65c122108e11bf91bd501eec29d90d", + "phone-320-comfortable-light-en.png": "105378c4d53b8acffd20453b8b4e130d204e298d92be664daf0da597a6995495", + "phone-320-comfortable-light-nb.png": "598329debe21e512a9ba395f39328f6f083f8a8ca2155798644751a2b94f73ff", + "phone-320-compact-dark-en.png": "6e9e15710258a041eafa577fd397bbefbb4aeb1f18c7b383b8dbdb4d82c277f0", + "phone-320-compact-dark-nb.png": "60c06fc9baaaab41b67267559d954ed8a1d0a55248edf7ced32895632da65454", + "phone-320-compact-light-en.png": "a014489a98fb73237e9841f85d25b3dd4f63f1c25e12a7f4bc365a36deba71ce", + "phone-320-compact-light-nb.png": "7ca73feb7d43a4832729a193283a62e5d50ac6f8b1c13a4327441f665c4b5cd8", + "phone-390-comfortable-dark-en.png": "132646a606218191bfd7806981781f555b4696876315b6d9e7a19312b008db70", + "phone-390-comfortable-dark-nb.png": "bb0fab9936ec506a5b51a4779897069701e1a788181b0a517be015e0d8162848", + "phone-390-comfortable-light-en.png": "050ba384a15f86afa3050915499cfecb8f4793b3ca11daba3ca1d05f3248a9df", + "phone-390-comfortable-light-nb.png": "133e25cb17c3c014046a04c83b04ea4c92e7d1b8ac261e832b93b1d3e85142dc", + "phone-390-compact-dark-en.png": "864065c6ecc6dc0e7c3e095da3b0e7d6493a33c61019f3affa594dc59d4e6036", + "phone-390-compact-dark-nb.png": "2147bf3f3cd043a1c9a69b16854de4f37dcd47ff09a661a14ed0c524e272f527", + "phone-390-compact-light-en.png": "8f0cc7ca1dfc8c82005f4afdfe548ffee3718f3bef9ac7ba03a2ad4fa711fe41", + "phone-390-compact-light-nb.png": "59840446b3251ad7d32617e98b02a5b6172876505d7b82fc67409327efaa3538", + "PILOT.txt": "74deb468cad84b7ec56e5671bcb1a93b278d906d7639c40296464d3dd374d8f7", + "row-action-focus-dark-en.png": "511e37ab828e286691350b26c2853cb86b4b690959ca45023ce4add5cd912a47", + "row-action-focus-dark-nb.png": "a4b959e505aae98251128dd238726d4bea2a8c2998014c42b790f0d7949f2443", + "row-action-focus-light-en.png": "cfda70f4c860106d77d745ca622692779986be3b57e851172afeee173d834fcf", + "row-action-focus-light-nb.png": "6faae9d60bae87924347177b2d548f53a4590ebfd902f2160817cdd3d73fbb33", + "rules-a3-integration.trx.gz": "14db5b765b09b1a824cc256aedeab3115d8ae1f441be12df47e54714087b08a5", + "SECOND-BROWSER.txt": "5c3b3e128e25a8d3e5e72bea230e1fb571a78b8a2749c418813ed2d8d27e7e22" + } +} diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/SECOND-BROWSER.txt b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/SECOND-BROWSER.txt new file mode 100644 index 00000000..9db8f339 --- /dev/null +++ b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/SECOND-BROWSER.txt @@ -0,0 +1,336 @@ +[WebServer] Using launch settings from ..\JobTrackerApi\Properties\launchSettings.json... +[WebServer] warn: Microsoft.EntityFrameworkCore.Migrations[30200] +[WebServer] An operation of type 'SqlOperation' will be attempted while a rebuild of table 'JobApplications' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration. +[WebServer] warn: Microsoft.EntityFrameworkCore.Migrations[20410] +[WebServer] The migration operation 'PRAGMA foreign_keys = 0; +[WebServer] ' from migration 'AddJobEntityAndProspectStages' cannot be executed in a transaction. If the app is terminated or an unrecoverable error occurs while this operation is being executed then the migration will be left in a partially applied state and would need to be reverted manually before it can be applied again. Create a separate migration that contains just this operation. +[WebServer] warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] +[WebServer] No XML encryptor configured. Key {ff113390-818c-4b00-aaed-dca8283bd29c} may be persisted to storage in unencrypted form. +[WebServer] (node:34416) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[WebServer] (Use `node --trace-warnings ...` to show where the warning was created) +[WebServer] (node:18616) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +[WebServer] (Use `node --trace-warnings ...` to show where the warning was created) + +Running 4 tests using 1 worker + +(node:30220) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + x 1 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/en table and cards preserve behavior at both densities (10.5s) +(node:32044) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + x 2 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/nb table and cards preserve behavior at both densities (10.4s) +(node:6168) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + x 3 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/en table and cards preserve behavior at both densities (9.0s) +(node:19316) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set. +(Use `node --trace-warnings ...` to show where the warning was created) + x 4 [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/nb table and cards preserve behavior at both densities (6.2s) + + + 1) [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/en table and cards preserve behavior at both densities + + Error: expect(received).toBeGreaterThanOrEqual(expected) + + Expected: >= 150 + Received: 89.890625 + + 145 | } + 146 | // Geometric containment alone misses a title squeezed into one-letter lines. + > 147 | expect((await first.getByText(/^Density 00/).boundingBox())!.width).toBeGreaterThanOrEqual(150); + | ^ + 148 | const metrics = await first.evaluate(card => Array.from(card.querySelectorAll("button,a,.MuiCheckbox-root")).map(node => { + 149 | const rect = node.getBoundingClientRect(); return { text: node.textContent, width: rect.width, height: rect.height, left: rect.left, right: rect.right }; + 150 | })); + at C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:147:77 + + attachment #1: jobs-top-desktop-light-en (image/png) ─────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\attachments\jobs-top-desktop-light-en-f1416f5079e9dae7363d607aa6388e58f032e248.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: desktop-comfortable-light-en (image/png) ──────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\attachments\desktop-comfortable-light-en-660a3212eb13e3b829a092f58183ba46d2795276.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #4: desktop-compact-light-en (image/png) ──────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\attachments\desktop-compact-light-en-97b5a9c08e474c6eaaba7612f2ae544d9d08eafd.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #7: jobs-top-phone-light-en (image/png) ───────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\attachments\jobs-top-phone-light-en-3de02167367b95b02cc2ad39b43c4e88c8f119c7.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #8: screenshot (image/png) ────────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\error-context.md + + attachment #10: trace (application/zip) ──────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\trace.zip + Usage: + + npx playwright show-trace test-results\table-density--PRES-J05-J0-63938--behavior-at-both-densities-chromium\trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 2) [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/nb table and cards preserve behavior at both densities + + Error: expect(received).toBeGreaterThanOrEqual(expected) + + Expected: >= 150 + Received: 89.890625 + + 145 | } + 146 | // Geometric containment alone misses a title squeezed into one-letter lines. + > 147 | expect((await first.getByText(/^Density 00/).boundingBox())!.width).toBeGreaterThanOrEqual(150); + | ^ + 148 | const metrics = await first.evaluate(card => Array.from(card.querySelectorAll("button,a,.MuiCheckbox-root")).map(node => { + 149 | const rect = node.getBoundingClientRect(); return { text: node.textContent, width: rect.width, height: rect.height, left: rect.left, right: rect.right }; + 150 | })); + at C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:147:77 + + attachment #1: jobs-top-desktop-light-nb (image/png) ─────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\attachments\jobs-top-desktop-light-nb-91cd77b8515e2fb9e6d33a692e137d751b850944.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: desktop-comfortable-light-nb (image/png) ──────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\attachments\desktop-comfortable-light-nb-7ac29ea19432eb0c09ddd49515a153b25212a5b3.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #4: desktop-compact-light-nb (image/png) ──────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\attachments\desktop-compact-light-nb-dcc8a8f6c161069e74eaf09284a08f927ecfb487.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #7: jobs-top-phone-light-nb (image/png) ───────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\attachments\jobs-top-phone-light-nb-9c2d93ec71b3df07b88d6e4f2fa11d5bd70fce4b.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #8: screenshot (image/png) ────────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\error-context.md + + attachment #10: trace (application/zip) ──────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\trace.zip + Usage: + + npx playwright show-trace test-results\table-density--PRES-J05-J0-63307--behavior-at-both-densities-chromium\trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 3) [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/en table and cards preserve behavior at both densities + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 64 + + - Array [] + + Array [ + + Object { + + "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds", + + "help": "Elements must meet minimum color contrast ratio thresholds", + + "helpUrl": "https://dequeuniversity.com/rules/axe/4.13/color-contrast?application=playwright", + + "id": "color-contrast", + + "impact": "serious", + + "nodes": Array [ + + Object { + + "all": Array [], + + "any": Array [ + + Object { + + "data": Object { + + "bgColor": "#443b53", + + "contrastRatio": 4.4, + + "expectedContrastRatio": "4.5:1", + + "fgColor": "#9e9eff", + + "fontSize": "10.5pt (14px)", + + "fontWeight": "normal", + + "messageKey": null, + + }, + + "id": "color-contrast", + + "impact": "serious", + + "message": "Element has insufficient color contrast of 4.4 (foreground color: #9e9eff, background color: #443b53, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + + "relatedNodes": Array [ + + Object { + + "html": "", + + "target": Array [ + + ".css-11gbcel-MuiTableRow-root", + + ], + + }, + + Object { + + "html": "
", + + "target": Array [ + + ".css-1j6eq80-MuiPaper-root", + + ], + + }, + + ], + + }, + + ], + + "failureSummary": "Fix any of the following: + + Element has insufficient color contrast of 4.4 (foreground color: #9e9eff, background color: #443b53, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + + "html": "Link", + + "impact": "serious", + + "none": Array [], + + "target": Array [ + + ".css-11gbcel-MuiTableRow-root > .css-1ingqjh-MuiTableCell-root:nth-child(9) > a[href$=\"listing\"][target=\"_blank\"][rel=\"noreferrer\"]", + + ], + + }, + + ], + + "tags": Array [ + + "cat.color", + + "wcag2aa", + + "wcag143", + + "TTv5", + + "TT13.c", + + "EN-301-549", + + "EN-9.1.4.3", + + "ACT", + + "RGAAv4", + + "RGAA-3.2.1", + + ], + + }, + + ] + + 52 | const result = await new AxeBuilder({ page }).withTags(["wcag2a", "wcag2aa", "wcag21a", "wcag21aa"]).analyze(); + 53 | await info.attach(`${name}-axe`, { body: JSON.stringify({ violations: result.violations, incomplete: result.incomplete }), contentType: "application/json" }); + > 54 | expect(result.violations).toEqual([]); + | ^ + 55 | } + 56 | async function keyboardFocus(page: Page, target: Locator) { + 57 | await target.focus(); + at scan (C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:54:29) + at C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:125:7 + + attachment #1: jobs-top-desktop-dark-en (image/png) ──────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\attachments\jobs-top-desktop-dark-en-9fc9d48bee9b6d70fd4bf7af72615f91740efea8.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: desktop-comfortable-dark-en (image/png) ───────────────────────────────────────── + test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\attachments\desktop-comfortable-dark-en-5bc72635596b9a7e3fa3211185a0fbfebaa6490f.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #4: screenshot (image/png) ────────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\error-context.md + + attachment #6: trace (application/zip) ───────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\trace.zip + Usage: + + npx playwright show-trace test-results\table-density--PRES-J05-J0-96d9c--behavior-at-both-densities-chromium\trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 4) [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/nb table and cards preserve behavior at both densities + + Error: expect(received).toEqual(expected) // deep equality + + - Expected - 1 + + Received + 64 + + - Array [] + + Array [ + + Object { + + "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds", + + "help": "Elements must meet minimum color contrast ratio thresholds", + + "helpUrl": "https://dequeuniversity.com/rules/axe/4.13/color-contrast?application=playwright", + + "id": "color-contrast", + + "impact": "serious", + + "nodes": Array [ + + Object { + + "all": Array [], + + "any": Array [ + + Object { + + "data": Object { + + "bgColor": "#443b53", + + "contrastRatio": 4.4, + + "expectedContrastRatio": "4.5:1", + + "fgColor": "#9e9eff", + + "fontSize": "10.5pt (14px)", + + "fontWeight": "normal", + + "messageKey": null, + + }, + + "id": "color-contrast", + + "impact": "serious", + + "message": "Element has insufficient color contrast of 4.4 (foreground color: #9e9eff, background color: #443b53, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + + "relatedNodes": Array [ + + Object { + + "html": "", + + "target": Array [ + + ".css-11gbcel-MuiTableRow-root", + + ], + + }, + + Object { + + "html": "
", + + "target": Array [ + + ".css-1j6eq80-MuiPaper-root", + + ], + + }, + + ], + + }, + + ], + + "failureSummary": "Fix any of the following: + + Element has insufficient color contrast of 4.4 (foreground color: #9e9eff, background color: #443b53, font size: 10.5pt (14px), font weight: normal). Expected contrast ratio of 4.5:1", + + "html": "Lenke", + + "impact": "serious", + + "none": Array [], + + "target": Array [ + + ".css-11gbcel-MuiTableRow-root > .css-1ingqjh-MuiTableCell-root:nth-child(9) > a[href$=\"listing\"][target=\"_blank\"][rel=\"noreferrer\"]", + + ], + + }, + + ], + + "tags": Array [ + + "cat.color", + + "wcag2aa", + + "wcag143", + + "TTv5", + + "TT13.c", + + "EN-301-549", + + "EN-9.1.4.3", + + "ACT", + + "RGAAv4", + + "RGAA-3.2.1", + + ], + + }, + + ] + + 52 | const result = await new AxeBuilder({ page }).withTags(["wcag2a", "wcag2aa", "wcag21a", "wcag21aa"]).analyze(); + 53 | await info.attach(`${name}-axe`, { body: JSON.stringify({ violations: result.violations, incomplete: result.incomplete }), contentType: "application/json" }); + > 54 | expect(result.violations).toEqual([]); + | ^ + 55 | } + 56 | async function keyboardFocus(page: Page, target: Locator) { + 57 | await target.focus(); + at scan (C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:54:29) + at C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\e2e\table-density.spec.ts:125:7 + + attachment #1: jobs-top-desktop-dark-nb (image/png) ──────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\attachments\jobs-top-desktop-dark-nb-de0939d685d6e747b8d560d1b6de29d02e5730c4.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #2: desktop-comfortable-dark-nb (image/png) ───────────────────────────────────────── + test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\attachments\desktop-comfortable-dark-nb-67fffcde180e1e34d26480532314959bb069d9e5.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + attachment #4: screenshot (image/png) ────────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\test-failed-1.png + ──────────────────────────────────────────────────────────────────────────────────────────────── + + Error Context: test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\error-context.md + + attachment #6: trace (application/zip) ───────────────────────────────────────────────────────── + test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\trace.zip + Usage: + + npx playwright show-trace test-results\table-density--PRES-J05-J0-e66f3--behavior-at-both-densities-chromium\trace.zip + + ──────────────────────────────────────────────────────────────────────────────────────────────── + + 4 failed + [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/en table and cards preserve behavior at both densities + [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] light/nb table and cards preserve behavior at both densities + [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/en table and cards preserve behavior at both densities + [chromium] › e2e\table-density.spec.ts:73:3 › [PRES-J05 J06 W01 W02 S03 E08 E09] dark/nb table and cards preserve behavior at both densities diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-dark-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-dark-en.png new file mode 100644 index 00000000..b141a411 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-dark-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-dark-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-dark-nb.png new file mode 100644 index 00000000..42e56921 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-dark-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-light-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-light-en.png new file mode 100644 index 00000000..dd621bee Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-light-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-light-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-light-nb.png new file mode 100644 index 00000000..430d9dc7 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-comfortable-light-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-dark-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-dark-en.png new file mode 100644 index 00000000..0cf90b65 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-dark-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-dark-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-dark-nb.png new file mode 100644 index 00000000..06b7e119 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-dark-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-light-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-light-en.png new file mode 100644 index 00000000..b7541b73 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-light-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-light-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-light-nb.png new file mode 100644 index 00000000..f773fe93 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/desktop-compact-light-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-dark-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-dark-en.png new file mode 100644 index 00000000..9f9ac1f7 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-dark-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-dark-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-dark-nb.png new file mode 100644 index 00000000..880410c8 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-dark-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-light-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-light-en.png new file mode 100644 index 00000000..f1372fbb Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-light-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-light-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-light-nb.png new file mode 100644 index 00000000..51e4d7ee Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-desktop-light-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-dark-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-dark-en.png new file mode 100644 index 00000000..1463cf62 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-dark-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-dark-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-dark-nb.png new file mode 100644 index 00000000..a67d1ea9 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-dark-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-light-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-light-en.png new file mode 100644 index 00000000..4b19d404 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-light-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-light-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-light-nb.png new file mode 100644 index 00000000..d2b45c66 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/jobs-top-phone-light-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-dark-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-dark-en.png new file mode 100644 index 00000000..7957cbc4 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-dark-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-dark-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-dark-nb.png new file mode 100644 index 00000000..287438b2 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-dark-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-light-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-light-en.png new file mode 100644 index 00000000..ab1628dd Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-light-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-light-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-light-nb.png new file mode 100644 index 00000000..b025390a Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/list-error-light-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-dark-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-dark-en.png new file mode 100644 index 00000000..dca76f32 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-dark-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-dark-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-dark-nb.png new file mode 100644 index 00000000..88a6a64b Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-dark-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-light-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-light-en.png new file mode 100644 index 00000000..c057f49d Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-light-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-light-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-light-nb.png new file mode 100644 index 00000000..1a756482 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-comfortable-light-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-dark-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-dark-en.png new file mode 100644 index 00000000..6ef6d0e4 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-dark-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-dark-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-dark-nb.png new file mode 100644 index 00000000..88202fad Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-dark-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-light-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-light-en.png new file mode 100644 index 00000000..bc05a48e Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-light-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-light-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-light-nb.png new file mode 100644 index 00000000..7e45c51b Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-320-compact-light-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-dark-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-dark-en.png new file mode 100644 index 00000000..2128a3d0 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-dark-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-dark-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-dark-nb.png new file mode 100644 index 00000000..d414eb9a Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-dark-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-light-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-light-en.png new file mode 100644 index 00000000..ec84d046 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-light-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-light-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-light-nb.png new file mode 100644 index 00000000..dd02e32f Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-comfortable-light-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-dark-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-dark-en.png new file mode 100644 index 00000000..413e7cfa Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-dark-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-dark-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-dark-nb.png new file mode 100644 index 00000000..8cf4c7f3 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-dark-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-light-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-light-en.png new file mode 100644 index 00000000..f8442293 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-light-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-light-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-light-nb.png new file mode 100644 index 00000000..3878dc09 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/phone-390-compact-light-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-dark-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-dark-en.png new file mode 100644 index 00000000..dfb23db9 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-dark-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-dark-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-dark-nb.png new file mode 100644 index 00000000..8026cfdf Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-dark-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-light-en.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-light-en.png new file mode 100644 index 00000000..aa62e346 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-light-en.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-light-nb.png b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-light-nb.png new file mode 100644 index 00000000..088c2a88 Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/row-action-focus-light-nb.png differ diff --git a/docs/ui-modernisation/visual-correction/evidence/application-actions-server/rules-a3-integration.trx.gz b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/rules-a3-integration.trx.gz new file mode 100644 index 00000000..6665388d Binary files /dev/null and b/docs/ui-modernisation/visual-correction/evidence/application-actions-server/rules-a3-integration.trx.gz differ