Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8f9522b1f9 | |||
| 9f63cff3c8 |
@@ -4,7 +4,6 @@ using JobTrackerApi.Services;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using System.Text.Json;
|
||||
using Moq;
|
||||
using Xunit;
|
||||
|
||||
@@ -91,119 +90,16 @@ public sealed class SubmittedApplicationPackageTests
|
||||
Assert.Empty(db.SubmittedApplicationPackages);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(false, 4)]
|
||||
[InlineData(true, 4)]
|
||||
[InlineData(false, 0)]
|
||||
[InlineData(true, 0)]
|
||||
public async Task Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(bool deleted, int version)
|
||||
{
|
||||
var renderer = new Mock<ICvVariantService>();
|
||||
var (db, service, storage) = New("owner-1", renderer);
|
||||
await using var dispose = db;
|
||||
var job = await SeedAsync(db, "owner-1", null);
|
||||
(await db.CvVariants.SingleAsync()).Version = version;
|
||||
await db.SaveChangesAsync();
|
||||
var real = new CvVariantService(db, new CareerProfileService(db), new ThemedCvRenderer());
|
||||
async Task<ThemedCvRenderResult?> RenderAfterChange(string owner, int id, CvRenderPerson person, CancellationToken ct, int? expected)
|
||||
{
|
||||
var current = await db.CvVariants.SingleAsync(x => x.Id == id, ct);
|
||||
if (deleted) db.CvVariants.Remove(current);
|
||||
else
|
||||
{
|
||||
current.Version += 1;
|
||||
current.SettingsJson = CvVariantSettingsJson.Serialize(new CvVariantSettings { ThemeId = "nordic", Headline = "Newer CV content" });
|
||||
}
|
||||
await db.SaveChangesAsync(ct);
|
||||
return await real.RenderAsync(owner, id, person, ct, expected);
|
||||
}
|
||||
renderer.Setup(x => x.RenderAsync("owner-1", It.IsAny<int>(), It.IsAny<CvRenderPerson>(), It.IsAny<CancellationToken>()))
|
||||
.Returns((string owner, int id, CvRenderPerson person, CancellationToken ct) => RenderAfterChange(owner, id, person, ct, null));
|
||||
renderer.Setup(x => x.RenderAsync("owner-1", It.IsAny<int>(), It.IsAny<CvRenderPerson>(), It.IsAny<CancellationToken>(), It.IsAny<int?>()))
|
||||
.Returns((string owner, int id, CvRenderPerson person, CancellationToken ct, int? expected) => RenderAfterChange(owner, id, person, ct, expected));
|
||||
|
||||
await Assert.ThrowsAsync<DbUpdateConcurrencyException>(() => service.CaptureAsync("owner-1", job.Id, new CvRenderPerson("Ada", null), default));
|
||||
|
||||
Assert.Empty(db.SubmittedApplicationPackages);
|
||||
Assert.Empty(db.SubmittedPackageAttachments);
|
||||
renderer.Verify(x => x.RenderAsync("owner-1", It.IsAny<int>(), It.IsAny<CvRenderPerson>(), It.IsAny<CancellationToken>(), version > 0 ? version : null), Times.Once);
|
||||
storage.Verify(x => x.SnapshotAsync(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<CancellationToken>()), Times.Never);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Profile_changed_during_render_cannot_publish_old_profile_metadata_with_new_html()
|
||||
{
|
||||
var renderer = new Mock<ICvVariantService>();
|
||||
var (db, service, _) = New("owner-1", renderer);
|
||||
await using var dispose = db;
|
||||
var job = await SeedAsync(db, "owner-1", null);
|
||||
var career = new CareerProfileService(db);
|
||||
var real = new CvVariantService(db, career, new ThemedCvRenderer());
|
||||
renderer.Setup(x => x.RenderAsync("owner-1", It.IsAny<int>(), It.IsAny<CvRenderPerson>(), It.IsAny<CancellationToken>(), It.IsAny<int?>()))
|
||||
.Returns(async (string owner, int id, CvRenderPerson person, CancellationToken ct, int? expected) =>
|
||||
{
|
||||
var changed = JsonSerializer.Deserialize<StructuredCvProfile>("{\"version\":\"1\",\"contact\":{\"fullName\":\"New during capture\",\"headline\":\"Updated canonical profile\"}}", new JsonSerializerOptions { PropertyNameCaseInsensitive = true })!;
|
||||
await career.SaveVersionAsync(owner, changed, "manual", 0, ct);
|
||||
var rendered = await real.RenderAsync(owner, id, person, ct, expected);
|
||||
Assert.Contains("New during capture", rendered!.Html);
|
||||
return rendered;
|
||||
});
|
||||
|
||||
await Assert.ThrowsAsync<DbUpdateConcurrencyException>(() => service.CaptureAsync("owner-1", job.Id, new CvRenderPerson("Ada", null), default));
|
||||
|
||||
Assert.Empty(db.SubmittedApplicationPackages);
|
||||
Assert.Equal(1, (await db.CareerProfiles.SingleAsync()).Version);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(true)]
|
||||
[InlineData(false)]
|
||||
public async Task Profile_created_or_removed_during_render_aborts_capture(bool created)
|
||||
{
|
||||
var renderer = new Mock<ICvVariantService>();
|
||||
var (db, service, _) = New("owner-1", renderer);
|
||||
await using var dispose = db;
|
||||
var job = await SeedAsync(db, "owner-1", null);
|
||||
if (created) { db.CareerProfiles.Remove(await db.CareerProfiles.SingleAsync()); await db.SaveChangesAsync(); }
|
||||
var real = new CvVariantService(db, new CareerProfileService(db), new ThemedCvRenderer());
|
||||
renderer.Setup(x => x.RenderAsync("owner-1", It.IsAny<int>(), It.IsAny<CvRenderPerson>(), It.IsAny<CancellationToken>(), It.IsAny<int?>()))
|
||||
.Returns(async (string owner, int id, CvRenderPerson person, CancellationToken ct, int? expected) =>
|
||||
{
|
||||
if (created) db.CareerProfiles.Add(new CareerProfile { OwnerUserId = owner, Version = 1, ProfileJson = "{}" });
|
||||
else db.CareerProfiles.Remove(await db.CareerProfiles.SingleAsync(ct));
|
||||
await db.SaveChangesAsync(ct);
|
||||
return await real.RenderAsync(owner, id, person, ct, expected);
|
||||
});
|
||||
await Assert.ThrowsAsync<DbUpdateConcurrencyException>(() => service.CaptureAsync("owner-1", job.Id, new CvRenderPerson("Ada", null), default));
|
||||
Assert.Empty(db.SubmittedApplicationPackages);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task Unchanged_absent_legacy_profile_remains_capturable()
|
||||
{
|
||||
var (db, service, _) = New("owner-1");
|
||||
await using var dispose = db;
|
||||
var job = await SeedAsync(db, "owner-1", null);
|
||||
db.CareerProfiles.Remove(await db.CareerProfiles.SingleAsync()); await db.SaveChangesAsync();
|
||||
Assert.NotNull(await service.CaptureAsync("owner-1", job.Id, new CvRenderPerson("Ada", null), default));
|
||||
Assert.Null((await db.SubmittedApplicationPackages.SingleAsync()).CareerProfileJson);
|
||||
}
|
||||
|
||||
private static (JobTrackerContext Db, SubmittedApplicationPackageService Service, Mock<IAttachmentStorage> Storage) New(string userId, Mock<ICvVariantService>? renderOverride = null)
|
||||
private static (JobTrackerContext Db, SubmittedApplicationPackageService Service, Mock<IAttachmentStorage> Storage) New(string userId)
|
||||
{
|
||||
var currentUser = new Mock<ICurrentUserService>();
|
||||
currentUser.SetupGet(x => x.UserId).Returns(userId);
|
||||
var options = new DbContextOptionsBuilder<JobTrackerContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options;
|
||||
var db = new JobTrackerContext(options, currentUser.Object);
|
||||
|
||||
var variants = renderOverride ?? new Mock<ICvVariantService>();
|
||||
if (renderOverride is null)
|
||||
{
|
||||
variants.Setup(x => x.RenderAsync(userId, It.IsAny<int>(), It.IsAny<CvRenderPerson>(), It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new ThemedCvRenderResult("nordic", "cv.pdf", "<html>Frozen CV</html>"));
|
||||
variants.Setup(x => x.RenderAsync(userId, It.IsAny<int>(), It.IsAny<CvRenderPerson>(), It.IsAny<CancellationToken>(), It.IsAny<int?>()))
|
||||
.ReturnsAsync(new ThemedCvRenderResult("nordic", "cv.pdf", "<html>Frozen CV</html>"));
|
||||
}
|
||||
var variants = new Mock<ICvVariantService>();
|
||||
variants.Setup(x => x.RenderAsync(userId, It.IsAny<int>(), It.IsAny<CvRenderPerson>(), It.IsAny<CancellationToken>()))
|
||||
.ReturnsAsync(new ThemedCvRenderResult("nordic", "cv.pdf", "<html>Frozen CV</html>"));
|
||||
|
||||
var storage = new Mock<IAttachmentStorage>();
|
||||
storage.Setup(x => x.IsManagedPath(It.IsAny<string>())).Returns(true);
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
using System.Security.Claims;
|
||||
using System.Text.Json;
|
||||
using JobTrackerApi.Controllers;
|
||||
using JobTrackerApi.Models;
|
||||
using JobTrackerApi.Services;
|
||||
using JobTrackerApi.Tests.TestSupport;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Moq;
|
||||
using Xunit;
|
||||
|
||||
namespace JobTrackerApi.Tests;
|
||||
|
||||
public sealed class SubmittedPackageConflictTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData(true)]
|
||||
[InlineData(false)]
|
||||
public async Task Capture_reports_revision_conflict_only_for_an_authenticated_caller(bool authenticated)
|
||||
{
|
||||
var user = new ApplicationUser { Id = "owner" };
|
||||
var users = TestHostFactory.CreateUserManager(user);
|
||||
users.Setup(x => x.GetUserAsync(It.IsAny<ClaimsPrincipal>())).ReturnsAsync(authenticated ? user : null);
|
||||
var packages = new Mock<ISubmittedApplicationPackageService>();
|
||||
packages.Setup(x => x.CaptureAsync("owner", 7, It.IsAny<CvRenderPerson>(), It.IsAny<CancellationToken>()))
|
||||
.ThrowsAsync(new DbUpdateConcurrencyException("CV changed"));
|
||||
var controller = new ApplicationAssetsController(users.Object, Mock.Of<IApplicationAssetsService>(), packages.Object)
|
||||
{ ControllerContext = new() { HttpContext = new DefaultHttpContext() } };
|
||||
|
||||
var result = await controller.CaptureSubmittedPackage(7, default);
|
||||
|
||||
if (authenticated)
|
||||
{
|
||||
var conflict = Assert.IsType<ConflictObjectResult>(result.Result);
|
||||
Assert.Equal("revision_conflict", JsonSerializer.SerializeToElement(conflict.Value).GetProperty("code").GetString());
|
||||
}
|
||||
else
|
||||
{
|
||||
Assert.IsType<UnauthorizedResult>(result.Result);
|
||||
packages.Verify(x => x.CaptureAsync(It.IsAny<string>(), It.IsAny<int>(), It.IsAny<CvRenderPerson>(), It.IsAny<CancellationToken>()), Times.Never);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -148,15 +148,8 @@ public sealed class ApplicationAssetsController : ControllerBase
|
||||
{
|
||||
var user = await _users.GetUserAsync(User);
|
||||
if (user is null) return Unauthorized();
|
||||
try
|
||||
{
|
||||
var result = await _packages.CaptureAsync(user.Id, jobId, Person(user), ct);
|
||||
return result is null ? NotFound() : Ok(result);
|
||||
}
|
||||
catch (DbUpdateConcurrencyException)
|
||||
{
|
||||
return Conflict(new { code = "revision_conflict", message = "The application documents changed. Reload and review them before capturing a submitted package." });
|
||||
}
|
||||
var result = await _packages.CaptureAsync(user.Id, jobId, Person(user), ct);
|
||||
return result is null ? NotFound() : Ok(result);
|
||||
}
|
||||
|
||||
[HttpGet("submitted-packages/{packageId:int}")]
|
||||
|
||||
@@ -72,20 +72,7 @@ public sealed class SubmittedApplicationPackageService : ISubmittedApplicationPa
|
||||
? (await variantQuery.ToListAsync(ct)).MaxBy(v => v.UpdatedAtUtc)
|
||||
: await variantQuery.OrderByDescending(v => v.UpdatedAtUtc).FirstOrDefaultAsync(ct);
|
||||
var profile = await _db.CareerProfiles.AsNoTracking().FirstOrDefaultAsync(p => p.OwnerUserId == ownerUserId, ct);
|
||||
var render = variant is null ? null : await _variants.RenderAsync(ownerUserId, variant.Id, person, ct, variant.Version > 0 ? variant.Version : null);
|
||||
if (variant is not null)
|
||||
{
|
||||
// Legacy version-zero variants remain capturable; recheck the stored snapshot after rendering.
|
||||
var current = await _db.CvVariants.AsNoTracking()
|
||||
.Where(v => v.Id == variant.Id && v.OwnerUserId == ownerUserId)
|
||||
.Select(v => new { v.Version, v.SettingsJson }).SingleOrDefaultAsync(ct);
|
||||
if (render is null || current is null || current.Version != variant.Version || current.SettingsJson != variant.SettingsJson)
|
||||
throw new DbUpdateConcurrencyException("The selected CV changed before the submitted package could be captured.");
|
||||
var currentProfile = await _db.CareerProfiles.AsNoTracking().Where(p => p.OwnerUserId == ownerUserId)
|
||||
.Select(p => new { p.Version, p.ProfileJson }).FirstOrDefaultAsync(ct);
|
||||
if (currentProfile?.Version != profile?.Version || currentProfile?.ProfileJson != profile?.ProfileJson)
|
||||
throw new DbUpdateConcurrencyException("The Career Profile changed before the submitted package could be captured.");
|
||||
}
|
||||
var render = variant is null ? null : await _variants.RenderAsync(ownerUserId, variant.Id, person, ct);
|
||||
var version = (await _db.SubmittedApplicationPackages.AsNoTracking()
|
||||
.Where(x => x.OwnerUserId == ownerUserId && x.JobApplicationId == jobApplicationId)
|
||||
.Select(x => (int?)x.Version)
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
# Canonical profile binding during submitted CV capture
|
||||
|
||||
Follow-up to PACKAGE_REVISION_CAPTURE.md. The CV variant guard alone did not bind the canonical profile metadata to the profile used by rendering. A deterministic test used the real CareerProfileService save and CvVariantService render to change the profile during capture; the resulting HTML contained the new name while capture could still publish the previously selected projection.
|
||||
|
||||
Capture now rechecks the owner's canonical profile revision/projection after rendering and rejects a changed, created or removed row through the existing revision_conflict path. A genuinely absent legacy profile remains capturable. Canonical save/render ownership, null-as-inherit selections, renderer code/styles and historical packages are unchanged. No new profile store, schema, API field or migration.
|
||||
|
||||
RED:one focused test failed with no conflict. GREEN:26 targeted cases passed/no skips across package/controller/export-revision/native SQLite suites;22 overlap the preceding run. Four added cases cover real profile save during render, creation, removal and unchanged absence. Logs and raw/gzip TRX/source receipts are in evidence/package-profile. Build/temp/results used E; no live DB/models/providers, physical PDF or production services were used.
|
||||
|
||||
This guards the canonical row/projection used by ordinary writers. It is not proof of a transactionally atomic snapshot across every source, arbitrary direct database mutations, legacy user-only fallback writes, or filesystem races. AttachmentStorage destination ownership remains a separate source-backed/unreproduced concern. Native/MariaDB/browser, full integrated security/recovery and final milestone gates remain open.
|
||||
|
||||
Rollback reverts only this follow-up source change and reruns affected package tests; no data repair required. Existing accepted PDF metrics remain historical and source-bound, not newly executed.
|
||||
@@ -1,15 +0,0 @@
|
||||
# Submitted CV snapshot revision integrity
|
||||
|
||||
Baseline9f341750; sourcee161ea33 on codex/frozen-document-integrity. This is a bounded integrity fix, not Phase10/A3/security/release acceptance.
|
||||
|
||||
The package service selected CV metadata and then rendered through the unversioned overload. A deterministic interleaving with the real CvVariantService reproduced publishing newer render data with older selected metadata, or continuing after deletion. Capture now passes the selected positive revision and rechecks the stored revision/settings after render. A missing selected CV aborts. The controller returns the existing409 revision_conflict code for this condition, preserving unauthenticated rejection and owner filtering.
|
||||
|
||||
An initial positive-only guard broke the native SQLite legacy version-zero fixture. The final path preserves zero-version capture through the existing unversioned compatibility path plus the post-render snapshot check. The public renderer's positive-revision validation was not relaxed. No fixture was weakened or renderer/physical PDF style changed.
|
||||
|
||||
Verification:RED8 cases (three failed/five passed); intermediate broader20 cases (one legacy compatibility failure/19 passed); final22 cases across package, controller conflict/auth, CV export revision and native SQLite compatibility suites passed with no skips. Four changed/deleted interleavings cover revisions4 and0; controller cases cover authenticated conflict/unauthenticated refusal. Existing frozen bytes/hash, tenant rejection, missing-file cleanup, later source mutation, account-export and native SQLite workflows remain covered. Native TRX gzip/raw receipts and source hashes are in evidence/package-revision.
|
||||
|
||||
The first build could not execute tests because C: was full. Only this run's fresh ignored bin/obj directories were removed after absolute-path/Git checks; generated output/temp/results were redirected to E using command flags, with offline cached restore. No source/evidence/dependency/user work was deleted. Delegated workers hit usage limits; root continued sequentially. C: capacity remains constrained.
|
||||
|
||||
Remaining investigation:concurrent Career Profile changes during render may require their own snapshot binding. AttachmentStorage.SnapshotAsync has a separate source-backed destination-ownership cleanup concern; no deterministic race reproduction or fix is claimed here. MariaDB, actual HTTP/browser capture, real models/providers, native device/AT, physical PDF acceptance, integrated security and recovery were not rerun. Existing accepted PDF metrics/visuals remain source-bound.
|
||||
|
||||
Rollback:revert the source commit, rebuild on the isolated development branch and rerun the affected suite. No migration/data repair is involved. UI callers retain the existing revision-conflict/review flow; an aborted capture publishes no package. This does not establish atomic consistency across every package source entity or filesystem race.
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
"sourceCommit": "b9c0b6186871d31a494c05cabc5e6361dccb851f",
|
||||
"sourcesLfSha256": {
|
||||
"JobTrackerApi/Services/SubmittedApplicationPackageService.cs": "75a4aabb02d21cc860cfa05006defaddeb8ef5918eb973e624690b0d8da42e70",
|
||||
"JobTrackerApi.Tests/SubmittedApplicationPackageTests.cs": "9f737f14852a1bb93e36913407aaed9d2939207a4f0806d1086d8cc456350af3",
|
||||
"JobTrackerApi/Services/CareerProfileService.cs": "dc91aca78069feff24eecf796c1fac459af9f5564e61d7918822f45b81807fef",
|
||||
"JobTrackerApi/Services/CvVariantService.cs": "da85153ff2199a4410df91807c6073aa19736676332266a227149d6d089ea841"
|
||||
},
|
||||
"receipts": [
|
||||
{
|
||||
"name": "profile-red",
|
||||
"total": 1,
|
||||
"passed": 0,
|
||||
"failed": 1,
|
||||
"rawSha256": "b63f144ec7c99a3eb40841ac7e5cc59ae84d71017e388afccb4cf441e3a9fcba",
|
||||
"gzipSha256": "482b6a8b235ce988134cbaebe52de232b3c469dcd02f535156a05a3bf5a2fa82"
|
||||
},
|
||||
{
|
||||
"name": "profile-green",
|
||||
"total": 26,
|
||||
"passed": 26,
|
||||
"failed": 0,
|
||||
"rawSha256": "7eb74ef3e0aca92ae83dd673026cdb1bfc45da3b976732ad6f043ae83f9b6ea9",
|
||||
"gzipSha256": "eb5251eda46e66feb96d69711757c19aea2bef1da70c9e404321b8827910301a"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
JobTrackerApi -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi\debug\JobTrackerApi.dll
|
||||
PdfBrowserStub -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\PdfBrowserStub\debug\PdfBrowserStub.dll
|
||||
JobTrackerApi.Tests -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\JobTrackerApi.Tests.dll
|
||||
Test run for E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\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: E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\profile-green\profile-green.trx
|
||||
|
||||
Passed! - Failed: 0, Passed: 26, Skipped: 0, Total: 26, Duration: 4 s - JobTrackerApi.Tests.dll (net9.0)
|
||||
@@ -1,20 +0,0 @@
|
||||
JobTrackerApi -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi\debug\JobTrackerApi.dll
|
||||
PdfBrowserStub -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\PdfBrowserStub\debug\PdfBrowserStub.dll
|
||||
JobTrackerApi.Tests -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\JobTrackerApi.Tests.dll
|
||||
Test run for E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\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.
|
||||
[xUnit.net 00:00:03.18] JobTrackerApi.Tests.SubmittedApplicationPackageTests.Profile_changed_during_render_cannot_publish_old_profile_metadata_with_new_html [FAIL]
|
||||
Failed JobTrackerApi.Tests.SubmittedApplicationPackageTests.Profile_changed_during_render_cannot_publish_old_profile_metadata_with_new_html [2 s]
|
||||
Error Message:
|
||||
Assert.Throws() Failure: No exception was thrown
|
||||
Expected: typeof(Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException)
|
||||
Stack Trace:
|
||||
at JobTrackerApi.Tests.SubmittedApplicationPackageTests.Profile_changed_during_render_cannot_publish_old_profile_metadata_with_new_html() in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedApplicationPackageTests.cs:line 152
|
||||
at JobTrackerApi.Tests.SubmittedApplicationPackageTests.Profile_changed_during_render_cannot_publish_old_profile_metadata_with_new_html() in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedApplicationPackageTests.cs:line 155
|
||||
--- End of stack trace from previous location ---
|
||||
Results File: E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\profile-red\profile-red.trx
|
||||
|
||||
Failed! - Failed: 1, Passed: 0, Skipped: 0, Total: 1, Duration: 2 s - JobTrackerApi.Tests.dll (net9.0)
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
"baseline": "9f341750ece2a3d2ddb11c14482df1ecc485a5c1",
|
||||
"sourceCommit": "e161ea33461eaefbecf08c96d79984029131e990",
|
||||
"sourcesLfSha256": {
|
||||
"JobTrackerApi/Services/SubmittedApplicationPackageService.cs": "f6315d491ccd5ddffb098ef22f35b0d727485bfe866ea875fc19c33ab897867e",
|
||||
"JobTrackerApi/Controllers/ApplicationAssetsController.cs": "bbed71f315f0be0381e4d6a09a536880f40040ba808b83a9d058b9fb1089bcc2",
|
||||
"JobTrackerApi.Tests/SubmittedApplicationPackageTests.cs": "9073b2ddc1e92e84063e10c071042c408c9eb9ab7f8403b2801bf5bbd121463b",
|
||||
"JobTrackerApi.Tests/SubmittedPackageConflictTests.cs": "e24038cae68c0d034bbcc07605aff09be1e23d4659ce391cf3de16c98f6a2ddf",
|
||||
"JobTrackerApi.Tests/CvExportRevisionTests.cs": "ee19195cec7486dd71d30ce6daa064ad07d5995c1dd97e529761e43511d9235d",
|
||||
"JobTrackerApi.Tests/SqliteDateTimeOffsetCompatibilityTests.cs": "5fb244d50d2378b8d18b14ac260beafc4bfd58190447306244b2916ea808d572",
|
||||
"JobTrackerApi/Services/CvVariantService.cs": "da85153ff2199a4410df91807c6073aa19736676332266a227149d6d089ea841"
|
||||
},
|
||||
"nativeReceipts": [
|
||||
{
|
||||
"name": "red",
|
||||
"artifact": "red.trx.gz",
|
||||
"total": 8,
|
||||
"passed": 5,
|
||||
"failed": 3,
|
||||
"rawSha256": "1c970594d7f3c7e86bc7d15ea7b79967cfcfb2202333d9933d9b70180d680bac",
|
||||
"gzipSha256": "3b69eafa4bda144a132547ec54a8d20b54b14fe263eb5c23ea854afff7f69598"
|
||||
},
|
||||
{
|
||||
"name": "intermediate",
|
||||
"artifact": "intermediate.trx.gz",
|
||||
"total": 20,
|
||||
"passed": 19,
|
||||
"failed": 1,
|
||||
"rawSha256": "26968e1cf8b575ba37de5f57f2898e4542427cf03a5136e7df351b9c4096b99c",
|
||||
"gzipSha256": "8a6021ee11a9dcd77b29f43cc3a146dd75d2f514e74f8650301a6e1cbd4fa0d2"
|
||||
},
|
||||
{
|
||||
"name": "final",
|
||||
"artifact": "final.trx.gz",
|
||||
"total": 22,
|
||||
"passed": 22,
|
||||
"failed": 0,
|
||||
"rawSha256": "faaa712ee6919280cda1e4384746f04ba02c7d807b3d4808b4468815df208062",
|
||||
"gzipSha256": "36e214810c9c840b5335385d1c18786489f57dd6f4812249a7e7c7ecb652f76a"
|
||||
}
|
||||
],
|
||||
"environment": "Pinned .NET9.0.317; existing offline NuGet cache; build/temp/results on E after C-drive exhaustion. No physical PDF/provider/MariaDB/live services."
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
JobTrackerApi -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi\debug\JobTrackerApi.dll
|
||||
PdfBrowserStub -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\PdfBrowserStub\debug\PdfBrowserStub.dll
|
||||
JobTrackerApi.Tests -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\JobTrackerApi.Tests.dll
|
||||
Test run for E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\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: E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\green-final\green-final.trx
|
||||
|
||||
Passed! - Failed: 0, Passed: 22, Skipped: 0, Total: 22, Duration: 4 s - JobTrackerApi.Tests.dll (net9.0)
|
||||
@@ -1,21 +0,0 @@
|
||||
JobTrackerApi -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi\debug\JobTrackerApi.dll
|
||||
PdfBrowserStub -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\PdfBrowserStub\debug\PdfBrowserStub.dll
|
||||
JobTrackerApi.Tests -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\JobTrackerApi.Tests.dll
|
||||
Test run for E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\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.
|
||||
[xUnit.net 00:00:03.64] JobTrackerApi.Tests.SqliteDateTimeOffsetCompatibilityTests.Tailoring_and_submission_capture_work_on_native_sqlite [FAIL]
|
||||
Failed JobTrackerApi.Tests.SqliteDateTimeOffsetCompatibilityTests.Tailoring_and_submission_capture_work_on_native_sqlite [768 ms]
|
||||
Error Message:
|
||||
Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException : The CV changed after it was loaded.
|
||||
Stack Trace:
|
||||
at JobTrackerApi.Services.CvVariantService.RenderAsync(String ownerUserId, Int32 id, CvRenderPerson person, CancellationToken ct, Nullable`1 expectedVersion) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi\Services\CvVariantService.cs:line 188
|
||||
at JobTrackerApi.Services.SubmittedApplicationPackageService.CaptureAsync(String ownerUserId, Int32 jobApplicationId, CvRenderPerson person, CancellationToken ct) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi\Services\SubmittedApplicationPackageService.cs:line 75
|
||||
at JobTrackerApi.Tests.SqliteDateTimeOffsetCompatibilityTests.Tailoring_and_submission_capture_work_on_native_sqlite() in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SqliteDateTimeOffsetCompatibilityTests.cs:line 50
|
||||
at JobTrackerApi.Tests.SqliteDateTimeOffsetCompatibilityTests.Tailoring_and_submission_capture_work_on_native_sqlite() in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SqliteDateTimeOffsetCompatibilityTests.cs:line 94
|
||||
--- End of stack trace from previous location ---
|
||||
Results File: E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\green\green.trx
|
||||
|
||||
Failed! - Failed: 1, Passed: 19, Skipped: 0, Total: 20, Duration: 3 s - JobTrackerApi.Tests.dll (net9.0)
|
||||
@@ -1,37 +0,0 @@
|
||||
JobTrackerApi -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi\debug\JobTrackerApi.dll
|
||||
PdfBrowserStub -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\PdfBrowserStub\debug\PdfBrowserStub.dll
|
||||
JobTrackerApi.Tests -> E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\JobTrackerApi.Tests.dll
|
||||
Test run for E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\artifacts\bin\JobTrackerApi.Tests\debug\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.
|
||||
[xUnit.net 00:00:03.04] JobTrackerApi.Tests.SubmittedPackageConflictTests.Capture_reports_revision_conflict_only_for_an_authenticated_caller(authenticated: True) [FAIL]
|
||||
Failed JobTrackerApi.Tests.SubmittedPackageConflictTests.Capture_reports_revision_conflict_only_for_an_authenticated_caller(authenticated: True) [723 ms]
|
||||
Error Message:
|
||||
Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException : CV changed
|
||||
Stack Trace:
|
||||
at JobTrackerApi.Controllers.ApplicationAssetsController.CaptureSubmittedPackage(Int32 jobId, CancellationToken ct) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi\Controllers\ApplicationAssetsController.cs:line 151
|
||||
at JobTrackerApi.Tests.SubmittedPackageConflictTests.Capture_reports_revision_conflict_only_for_an_authenticated_caller(Boolean authenticated) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedPackageConflictTests.cs:line 31
|
||||
--- End of stack trace from previous location ---
|
||||
[xUnit.net 00:00:05.56] JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(deleted: False) [FAIL]
|
||||
[xUnit.net 00:00:05.58] JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(deleted: True) [FAIL]
|
||||
Failed JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(deleted: False) [137 ms]
|
||||
Error Message:
|
||||
Assert.Throws() Failure: No exception was thrown
|
||||
Expected: typeof(Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException)
|
||||
Stack Trace:
|
||||
at JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(Boolean deleted) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedApplicationPackageTests.cs:line 120
|
||||
at JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(Boolean deleted) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedApplicationPackageTests.cs:line 124
|
||||
--- End of stack trace from previous location ---
|
||||
Failed JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(deleted: True) [20 ms]
|
||||
Error Message:
|
||||
Assert.Throws() Failure: No exception was thrown
|
||||
Expected: typeof(Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException)
|
||||
Stack Trace:
|
||||
at JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(Boolean deleted) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedApplicationPackageTests.cs:line 120
|
||||
at JobTrackerApi.Tests.SubmittedApplicationPackageTests.Cv_changed_between_metadata_and_render_aborts_without_a_partial_package(Boolean deleted) in C:\Users\Connor\.codex\worktrees\frozen-document-integrity\Job tracker\JobTrackerApi.Tests\SubmittedApplicationPackageTests.cs:line 124
|
||||
--- End of stack trace from previous location ---
|
||||
Results File: E:\Storage\Projects\Active\temp docs\jobjakt-local-build\frozen-document-integrity\red\red.trx
|
||||
|
||||
Failed! - Failed: 3, Passed: 5, Skipped: 0, Total: 8, Duration: 3 s - JobTrackerApi.Tests.dll (net9.0)
|
||||
@@ -1,21 +0,0 @@
|
||||
# Rendered date widgets and UI language
|
||||
|
||||
11 November 2026. Baseline `d027754d15fadd945e0d9d38e6ca85b50d8dc885`; application source `beb5564223f23e900477955dce244fda72f386c9`, expanded calendar verifier `285d3c88c771054b0ac0b3c95f041339c6cc6ed5` on `codex/a3-ui-10`.
|
||||
|
||||
The rendered Bokmål Edit dialog exposed English date sections and calendar controls through the default LocalizationProvider. DateLocalizationProvider now consumes the live inner application I18nProvider and selects installed date-fns English/Bokmål formatting and MUI picker translations. ClientApp retains its existing outer language/error boundary. Router and form identity survive language changes. Generated-content language stays with the document features.
|
||||
|
||||
The two new component cases failed before the locale binding and passed afterward. The final affected run passed 25 tests in six suites, including real MUI sections, live language changes, existing date/payload/revision checks, navigation, theme and locale-fetch stability. Full lint, final scoped lint and export/build with TypeScript passed. The first build exposed unsupported Testing Library matcher options in the new test; those options were removed before the successful build.
|
||||
|
||||
## Actual widget verification
|
||||
|
||||
`scripts/verify-job-date-widgets.mjs` exercised the exported React application with real MUI widgets. Six finite configurations pair English/light/1440 px mouse interaction and Bokmål/dark/390 px touch interaction in each of Los Angeles, Oslo and Kiritimati. They cover all seven Add/Edit controls, live EN↔NB changes with the unsaved title/date retained, stable detail-read count, local today at a fixed UTC boundary, exact version7 Edit payload and exact calendar-day create payload. The desktop calendar closes on selection; the touch calendar uses its explicit OK action.
|
||||
|
||||
All six journeys and 18 axe scans/captures passed, with zero page errors or unavailable reads. Captures include the open calendar as well as Add/Edit forms. Twelve intercepted fixture writes were verified. External Google Fonts requests were blocked. These are the defined six configurations, with widths/themes/input modes paired by language. Native devices and a full combinatorial matrix remain separate. The two-case pilot and earlier 12-capture run overlap the final six-case run. Its earlier failures were stale locale-dependent dialog selectors, corrected by binding each dialog to its stable title ID. Failed logs/JSON remain with final evidence. The dark touch calendar and light desktop popup were visually inspected.
|
||||
|
||||
Calendar selections and save/create requests used synthetic teacher/school data and intercepted API responses. This verifies the widget-to-payload boundary. Earlier native API/SQLite evidence retains its own source identity and scope. No provider or model was used.
|
||||
|
||||
## Remaining localisation work
|
||||
|
||||
Legacy timestamp-loading/display precision remains tracked in DATE_PICKER_CALENDAR_DAY.md. Other MUI controls still expose English internal labels, including the company Autocomplete's Clear/Open controls in the Bokmål probe. Those need their shared localisation owner and regression evidence. Broader European locale, native-language, device, integrated security and release acceptance remain open.
|
||||
|
||||
Rollback restores the prior provider placement and its default English picker configuration, with affected locale/widget verification required before publication.
|
||||
@@ -1,139 +0,0 @@
|
||||
{
|
||||
"sourceContentCommit": "d2dbe851c03dfba711501af0a36a021e5c3b00f9",
|
||||
"policy": "LF-normalised source and text evidence; raw PNG/gzip/zip/export. Content binding for offline UI verification; release candidate/image identity remains separate.",
|
||||
"sources": {
|
||||
"job-tracker-ui/src/App.tsx": "e0c50ec92954b90cf62b9d8b8e0d5b5802c2408e577e5e255a8d78c3dfdf7135",
|
||||
"job-tracker-ui/src/ClientApp.tsx": "327cf5f9cf213c4d8146bf6fa2c0c0d20462b71e03ed0d73105823c5f26b0424",
|
||||
"job-tracker-ui/src/DateLocalizationProvider.tsx": "cb03831c5f2e755585a82935614f8e1b778f563329535b0c9c9a38fb600fcf2c",
|
||||
"job-tracker-ui/src/i18n/I18nProvider.tsx": "dfa8d95510a7dd872e1b9bbddf9bb4ab31da4d4b5e932b0099397d11e08ad108",
|
||||
"job-tracker-ui/src/i18n/translations.ts": "a0b706a859264773418ec3f1275332e97add913de65c4d6efaef04b23ae8e1c5",
|
||||
"job-tracker-ui/src/components/AddJobModal.tsx": "e3b846dc276e8d2a8084bf6e7e670a0639a46eea0788e90afa81722e6028f369",
|
||||
"job-tracker-ui/src/components/EditJobDialog.tsx": "b6aacbb20f7b924b60c9d8162d7129608cf5af113c7bc2b0bfa68bc685d40430",
|
||||
"job-tracker-ui/src/date-picker-localisation.test.tsx": "75616ddbe8741628c463d0532656310d6cf96ed71be027690cb54c028cf3108b",
|
||||
"job-tracker-ui/scripts/verify-job-date-widgets.mjs": "578fbfb24df90406f113ee16352b34aa6a15abdcca7eaf473e8c7a0c49372815",
|
||||
"job-tracker-ui/package.json": "3745394e406cefa40d30a87e840bccb359be147bac6ffba736e2ae90898a8626",
|
||||
"job-tracker-ui/package-lock.json": "bf31e90d7af03e8af059db2aaf893925b9e8881a30a1688034ed88ef45d4fcab"
|
||||
},
|
||||
"evidence": {
|
||||
"docs/i18n/evidence/date-widgets/add-America-Los_Angeles-en.png": "438d9c4a58e0d0cd4310deecc0185e29f8df2c81761282f5a5132354d35baa55",
|
||||
"docs/i18n/evidence/date-widgets/add-America-Los_Angeles-nb.png": "deca21bc4a1bd9267a601e57176d9ae9cd56cf4adac4246d87fba3b8459f10f9",
|
||||
"docs/i18n/evidence/date-widgets/add-Europe-Oslo-en.png": "1233effc1a3866f05723da0502bce17acbaed73f8bb0e231686c68c281866891",
|
||||
"docs/i18n/evidence/date-widgets/add-Europe-Oslo-nb.png": "deca21bc4a1bd9267a601e57176d9ae9cd56cf4adac4246d87fba3b8459f10f9",
|
||||
"docs/i18n/evidence/date-widgets/add-Pacific-Kiritimati-en.png": "523463c6eb3d5c26794d39e840f3fddf2a25bba4787d3bbbb0aef035c12110ef",
|
||||
"docs/i18n/evidence/date-widgets/add-Pacific-Kiritimati-nb.png": "deca21bc4a1bd9267a601e57176d9ae9cd56cf4adac4246d87fba3b8459f10f9",
|
||||
"docs/i18n/evidence/date-widgets/BEFORE-CALENDAR-CAPTURE.json": "6b0839f06250b243276d219862b77a0594475ffd2e3825f1b57ad6c3ead661f4",
|
||||
"docs/i18n/evidence/date-widgets/BEFORE-CALENDAR-CAPTURE.txt": "03e8426093450fff861bc40d8a3105b4ae915412c7ffc2c546dfc5faf444e8d6",
|
||||
"docs/i18n/evidence/date-widgets/BOKMAL-BEFORE.txt": "fdbd5a73d9fafbe4b2a03d4776d80cdbda85d6b7f73a04d70a24c85294fbc47e",
|
||||
"docs/i18n/evidence/date-widgets/BROWSER.json": "7b349923cf25578e97ab41962a4d0142772377ccd1d4e3976caa9f50e815ac07",
|
||||
"docs/i18n/evidence/date-widgets/BROWSER.txt": "f0cc7a53c3991d21d4a71aa757e7770694062d4011b1bcfb6996eaec51a7af07",
|
||||
"docs/i18n/evidence/date-widgets/BUILD.txt": "c26f282b701f133bad7659595a123b22ba3584b6e7681f13bd74ec23b94dbad0",
|
||||
"docs/i18n/evidence/date-widgets/calendar-America-Los_Angeles-en.png": "fd0b8100a6e1da2c2bbfd0458be457f5e53af02c3ee9b4269b642de27cc889a2",
|
||||
"docs/i18n/evidence/date-widgets/calendar-America-Los_Angeles-nb.png": "0a8bc71fc1e6594eb63e2bfaf0e16cf7429064ccd60511324882d66448d14bcf",
|
||||
"docs/i18n/evidence/date-widgets/calendar-Europe-Oslo-en.png": "0c54b91904908cd3529a12a4be06cab6f121d194f7deab4789666b669626e0e1",
|
||||
"docs/i18n/evidence/date-widgets/calendar-Europe-Oslo-nb.png": "0e14c3fc57b96540ff895ca83c0c076db87abee3983ffc65cafb571ac883981e",
|
||||
"docs/i18n/evidence/date-widgets/calendar-Pacific-Kiritimati-en.png": "9d9e1c206d383893d96e62f80c67e39445afe33fc4d684b930c926968a26ccf3",
|
||||
"docs/i18n/evidence/date-widgets/calendar-Pacific-Kiritimati-nb.png": "0e14c3fc57b96540ff895ca83c0c076db87abee3983ffc65cafb571ac883981e",
|
||||
"docs/i18n/evidence/date-widgets/edit-America-Los_Angeles-en.png": "ed8f083d2561e0d9e7c4e431847e8a606d461e4de130b1b33359b4e9ef6546f4",
|
||||
"docs/i18n/evidence/date-widgets/edit-America-Los_Angeles-nb.png": "fd84d04daf9fe2788456e2a62f6bf019cbff0358caef7889ad2c42166cfa1d34",
|
||||
"docs/i18n/evidence/date-widgets/edit-Europe-Oslo-en.png": "fb79eced4ef8aeb6d6599d9d992ae8e4f854b214fa1762e0567210da11c63fde",
|
||||
"docs/i18n/evidence/date-widgets/edit-Europe-Oslo-nb.png": "fd84d04daf9fe2788456e2a62f6bf019cbff0358caef7889ad2c42166cfa1d34",
|
||||
"docs/i18n/evidence/date-widgets/edit-Pacific-Kiritimati-en.png": "528881fc9458ba70557dc4f045589fa3ea804be784a94611dbde8752c467ac92",
|
||||
"docs/i18n/evidence/date-widgets/edit-Pacific-Kiritimati-nb.png": "fd84d04daf9fe2788456e2a62f6bf019cbff0358caef7889ad2c42166cfa1d34",
|
||||
"docs/i18n/evidence/date-widgets/FINAL-LINT.txt": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"docs/i18n/evidence/date-widgets/FIRST-BUILD.txt": "37d0824d5f695712a80c767d9e8aaf6926ac78754ed5904f9c1c4234e15fea5b",
|
||||
"docs/i18n/evidence/date-widgets/FIRST-PILOT.json": "4fc9bae83fc3a97dffb19066b453cdc018a4739a376ef07dbb6bcaffc9603220",
|
||||
"docs/i18n/evidence/date-widgets/FIRST-PILOT.txt": "92f5d2ef5e9028ce93f922852a810919fa0de10f1d99a75a13931d5d3435859d",
|
||||
"docs/i18n/evidence/date-widgets/INITIAL-TESTS.txt": "fa82418c16bb28051617330efdb12e6854eaa6f501037fb95576e3d7b63e5162",
|
||||
"docs/i18n/evidence/date-widgets/LINT.txt": "90b7cd72b55fedd90de76daaa13f3c58e1b051481ede133c1904168b2f6bf6b0",
|
||||
"docs/i18n/evidence/date-widgets/PILOT.json": "12d2eef862eb6e947c3c9b263e5b72900391546bf8550f8a3833d40b4c0cc515",
|
||||
"docs/i18n/evidence/date-widgets/PILOT.txt": "a3552d386e24b46902e5f0d405c468e25dbc61db32f476c49302ea916e5b3af6",
|
||||
"docs/i18n/evidence/date-widgets/RED.txt": "a290b0ba61d73f3e4385cfab22f4cd47f02a4b2c6c3e5c76b7585a641d93d327",
|
||||
"docs/i18n/evidence/date-widgets/SCRIPT-LINT.txt": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"docs/i18n/evidence/date-widgets/SECOND-PILOT.json": "3acf6576fe44a63dbb5e2b5e6e9c2474f454b26325793ae449d70c3b34c99246",
|
||||
"docs/i18n/evidence/date-widgets/SECOND-PILOT.txt": "cc7ad4c51d6c9c071195641fec30a7cc1945e8e67c866610bfc9c416251b778c",
|
||||
"docs/i18n/evidence/date-widgets/TESTS.txt": "f986879f8267b32d4fbc0099c71a09bffedffb5d0fb9b9f0d794a36bb494dee4",
|
||||
"docs/i18n/DATE_WIDGET_LOCALISATION.md": "f327cb04165acbe70084d930adc5af86681622c3945f8c7c876a69afaea11184"
|
||||
},
|
||||
"export": {
|
||||
"job-tracker-ui/out/404.html": "72e30d3b9ee3fd4130a19f867e5955be376cd9e431895bb6379a1779016ed8ab",
|
||||
"job-tracker-ui/out/__next.__PAGE__.txt": "c8dd0ec833f803c8affdfd7d003a7d515b57f658e4aba36147476915fbb2d96c",
|
||||
"job-tracker-ui/out/__next._full.txt": "7fe18a67ad3fcce522792c8f37a0384d024857ed2568ae828644804ef7e89cd3",
|
||||
"job-tracker-ui/out/__next._tree.txt": "590ca89c962671f90b40c9646423d06404ba7d696f65a4ddd5c9c0f9f6804073",
|
||||
"job-tracker-ui/out/_next/static/BIErlC84p7XkJNYoDBRWD/_buildManifest.js": "9476e0afd3f9da68a64e6ec58631191fd3eaca62c9f5a377e7517fe9a89e59ea",
|
||||
"job-tracker-ui/out/_next/static/BIErlC84p7XkJNYoDBRWD/_clientMiddlewareManifest.js": "5483e3295dc35dfe29ea932efc85341c916f10ff78ff5b0e965e003710893a4a",
|
||||
"job-tracker-ui/out/_next/static/BIErlC84p7XkJNYoDBRWD/_ssgManifest.js": "678f6ce2cb80b1fe72fc67e7412be6e2ab6ada083111b64f7c40d35e3cba5e00",
|
||||
"job-tracker-ui/out/_next/static/chunks/0--vhwu1kmht5.js": "426fae50ff0485fb6af8e28a7d1751dfaefcb6118a24dab39b3a7099d38c18dd",
|
||||
"job-tracker-ui/out/_next/static/chunks/0-_aq6ipzcshj.js": "39f90c215bf52aef6274ed3dcc0f8af32e21a37fe8845b3bca0d6ea60da6a8c2",
|
||||
"job-tracker-ui/out/_next/static/chunks/00sdty8f_wo6_.js": "047077072852a0211c228c75d5e29836ba970771382ba0da4bac9fdd0bfac29f",
|
||||
"job-tracker-ui/out/_next/static/chunks/021jk107jdn29.js": "aedfd5b422819006c59c634e5907edddb176beaea2d899a5cc9984285bb232d3",
|
||||
"job-tracker-ui/out/_next/static/chunks/02pclekj6sxrn.js": "8de8b7bb4d26955b3f334c338dc6c2cdef52b134b6be2396e9c5cf85c3657448",
|
||||
"job-tracker-ui/out/_next/static/chunks/05rgc5zsm9p5i.js": "1da7305ab9d8e95795327cce11a16db4c56d90429d7e1dea4c4088c085f20d69",
|
||||
"job-tracker-ui/out/_next/static/chunks/0afg9bl7a8pj5.js": "bd0cec651950d5007f84273af5be8d8255806da4db54238f5c512442c7449459",
|
||||
"job-tracker-ui/out/_next/static/chunks/0ah1fzqmie05a.js": "5c65505a7dcbac63ac71d254e619a4c800943bfb4fa16cd40c10cdbe7e9b6e31",
|
||||
"job-tracker-ui/out/_next/static/chunks/0b3nrgli_w65x.js": "bf23e1a05a97de3a950e76eb206b2fbbe9003460891ecd5ab091155aa385badc",
|
||||
"job-tracker-ui/out/_next/static/chunks/0bdt7ln111t48.js": "6184b1a61f22e2a640c17941634fdc75678ce93d142848d9f07f163e0d1fd201",
|
||||
"job-tracker-ui/out/_next/static/chunks/0cz1d0mv5g_q7.js": "0973c1d64c88adc8e3c950410cb58b288f72118d5965b78049438deb8f2f9683",
|
||||
"job-tracker-ui/out/_next/static/chunks/0og1crk78cn4a.js": "aa5031605cb2f46a612e94d9d71473f48a71aa4a5acfe8fe5f2dfc66d951ab40",
|
||||
"job-tracker-ui/out/_next/static/chunks/0pvbhqkwp15b6.js": "f210cc1a8c203de6008b6137c0324afabb33f233c1ab56800fe9e6c963c0c34a",
|
||||
"job-tracker-ui/out/_next/static/chunks/0q20g9o8x-k8z.js": "3d4d9086985419aa8866b032158196c774acb8bf318f3c8245508c8daa9c5148",
|
||||
"job-tracker-ui/out/_next/static/chunks/0q_pwu9jxv4-d.js": "42a43b3d7245a413c7c29b4cbe87823037a6dbc637e2e282c92405470e0f575d",
|
||||
"job-tracker-ui/out/_next/static/chunks/0qxm1h9uqfgpa.js": "a5af3192c76f3b8dac5c17afbe90d96a5c7652810ce69b7f39fbcf1f1231fd8c",
|
||||
"job-tracker-ui/out/_next/static/chunks/0ta69108309yl.js": "07b8069d13ddaf7aaa24daf1070144a2e98b444ca162b628b8bfb8e1068d2967",
|
||||
"job-tracker-ui/out/_next/static/chunks/0vc71o0a3bvk-.js": "12a1d8489f5ef9f9cdc09d56b91d881f73228a0c4743a72c6320f253bf638402",
|
||||
"job-tracker-ui/out/_next/static/chunks/0zep-wknuuxm3.js": "cc13d0dc908a4b047a165a50a226b787ee7707135b3f2c5894aab8cbd618a29c",
|
||||
"job-tracker-ui/out/_next/static/chunks/1-8ykqf0n88k2.js": "eb208124ec838cb9a9ae366745bd81fba1c35eeceac128c567bbb7977ebb6a2e",
|
||||
"job-tracker-ui/out/_next/static/chunks/10qxrc5f9nore.js": "512bfc44077703fa4e03e15ca48acf3501231c5e2cb9bf7beb2ec30224fe287b",
|
||||
"job-tracker-ui/out/_next/static/chunks/1435in_k_-dhc.js": "4757476512d5c4dd25f9264a18b304ed4824b23aff1c09e134fcbff21d9c36b6",
|
||||
"job-tracker-ui/out/_next/static/chunks/145oicobmjvm7.js": "d6bbbdeed1381652dc7412e5ce673a077579ecd5cee8934cb6b533c814098764",
|
||||
"job-tracker-ui/out/_next/static/chunks/14e7ovj0s3elm.js": "070567dd4d23fb9fa0b9ba132185a697af6578045d43b2b1c7bbb2a1594d935d",
|
||||
"job-tracker-ui/out/_next/static/chunks/15saa2mllmdp7.js": "6664972f61e1669d2ca1ed9af467df87d316efeadf59496ce8c68d8c84fd7512",
|
||||
"job-tracker-ui/out/_next/static/chunks/16lfece6cnlln.js": "716363ba044f30b0e70440756b4e5eafa2d25f2e1628e855e3bc4ab9eabee3d3",
|
||||
"job-tracker-ui/out/_next/static/chunks/188aj_hr_p4eq.js": "f10e4af24bebfb8b9e7306a5688ef45f07f280c920dc01815ac578fbe18e2182",
|
||||
"job-tracker-ui/out/_next/static/chunks/19ohoqj_a5joe.js": "20a17b75c133c7b3e389c290ec1bf09395700cda12ea3ab1210592a8b4c2d573",
|
||||
"job-tracker-ui/out/_next/static/chunks/1avt7t-z_q80r.js": "8cbd919d971eaf46e508f9e6b073a9183a29457c3c42c9566ec74b018894c061",
|
||||
"job-tracker-ui/out/_next/static/chunks/1ke8pzecwofrg.css": "32e9ab963ebadebcbe2c68dffb24cfbfc8cc24255ad91b48b7941fc777bf7439",
|
||||
"job-tracker-ui/out/_next/static/chunks/1req80b9jj38r.js": "eee4d2e3789e1215195dba99ad0f09d34f8c83da848322b76054722233e9dae3",
|
||||
"job-tracker-ui/out/_next/static/chunks/1svx1qnrof8xa.js": "111c502a1ca939f7bf971ed1b3e3cda011b130c313a7f7df742ae4b1e14486ae",
|
||||
"job-tracker-ui/out/_next/static/chunks/1w3q8yrcjn2jk.js": "365200e241ee9290e93d7c2fdba169f2b0a8e774541e3cbf3f6f2781110fa644",
|
||||
"job-tracker-ui/out/_next/static/chunks/1xn023_28rgzj.js": "4f7f2108d030a48d039930736c92a55710975dddf419fe673f84d92899b1f575",
|
||||
"job-tracker-ui/out/_next/static/chunks/1xwc-b795syag.css": "f73c002233f931ca14d0ae58815c47ca9f2659f25b1547a6d1fdca12a2a00b3f",
|
||||
"job-tracker-ui/out/_next/static/chunks/22wx8--1b9tnq.js": "3f7d8e762371262c6a740b4dac21725b424847319afac46055e97074a99ff5f5",
|
||||
"job-tracker-ui/out/_next/static/chunks/274f8aifi_wup.js": "bc5bc5617b4acbbbb1c7966322c508bb5554024d78e71e523e27f7f5bba5a8ab",
|
||||
"job-tracker-ui/out/_next/static/chunks/29jdblthf0w7a.js": "e84b4f7c225d58099aa89999544f7318cb23c0c71f2385c31b3c9181a62ab7f0",
|
||||
"job-tracker-ui/out/_next/static/chunks/2edynwqicn6ym.js": "c694af15bb117955e6f7f0962f47495b2be017dfdea93b6d4ede4d5e4fcd7efd",
|
||||
"job-tracker-ui/out/_next/static/chunks/2ha8nlh4rv92e.js": "5cb4b4cee708f35ed54ef6289269fa866afbaa64fd47bf9275ff691664d3132e",
|
||||
"job-tracker-ui/out/_next/static/chunks/2php_9zkhprrb.js": "4f91e63b1181693e7a3b269b1b24004d9abee13413b8396a916799b8c01620e8",
|
||||
"job-tracker-ui/out/_next/static/chunks/2pllop_q35dkw.js": "21c9a7c53763010317a2d09460066017e1fd192691e6a0bd83ed20ea6e1fe9dd",
|
||||
"job-tracker-ui/out/_next/static/chunks/2s2gjr6ro25dj.js": "7489e2ac285a05b563c2bcb4eaf9274bf930f2a7385f17d6d5e6850064b88b10",
|
||||
"job-tracker-ui/out/_next/static/chunks/2vt8x99fh3ag7.js": "99d883591b1bbcd3c49758bd0bdbbc46af66eae5ecf0a75657fa1585d29d8f4c",
|
||||
"job-tracker-ui/out/_next/static/chunks/30-q9iimktiql.js": "db89d5da1f101216d7f99e9518dc7f5ed84f8b40ac84a6ea55f73c01bf1aca1b",
|
||||
"job-tracker-ui/out/_next/static/chunks/315n7snxk3fgw.js": "1993429aafa0753d5e9fd1ca63a4f6079ce7f7f37faa44716191f59c972c4d41",
|
||||
"job-tracker-ui/out/_next/static/chunks/33at73n-mzpir.js": "1605cc3311cc6ca3b2f44b2e0217fe5441a2799fa32b0b0c94d7634f4861ac83",
|
||||
"job-tracker-ui/out/_next/static/chunks/357yqeklh7414.js": "0192ab7198ebbe299d34a934c504dd4b562d1cccebb6e9d4c5163930c881b14c",
|
||||
"job-tracker-ui/out/_next/static/chunks/35pq4ixaltkev.js": "f1e9d53e2481de01d7b04aa938397c2545b7d7dc42ce3d0ac5cd3f1141bda182",
|
||||
"job-tracker-ui/out/_next/static/chunks/3_4dnl1l3809g.js": "50288c2864a9e8c7ef25c93762edb86e4e617778737b5b5a028c53c5b93d3b70",
|
||||
"job-tracker-ui/out/_next/static/chunks/3bqn9b34na0b9.js": "f1b8ebcc1b22251c33c9f3a5d11c1f893cad2da2e8744a441e790f7347aa9e73",
|
||||
"job-tracker-ui/out/_next/static/chunks/3gkylew_qn7cw.js": "7e6c74c81be0c41ab433e36d65b914f62c48f332922e27f7cc953476f4dd78cb",
|
||||
"job-tracker-ui/out/_next/static/chunks/3kwbf09xml2_g.js": "5d31587f866b3d52004ac4cb50a1c70961cb2fb60253e40d6374ba38ad9bdb9d",
|
||||
"job-tracker-ui/out/_next/static/chunks/3la4obitihzpv.js": "9a5a57b46db389b98f1fd5baa86eba1a360300dae9d1ff3ffeae7bc3378135b9",
|
||||
"job-tracker-ui/out/_next/static/chunks/3q4v10rrqy40n.js": "d87ff7b7a0f07d0d92eab3876481eb686a12d9c43d8b92cbe406aefa227a11c1",
|
||||
"job-tracker-ui/out/_next/static/chunks/3xbcgmkebja05.js": "bb1e98db2657a4b067676ead2ea26172478a79c1b384a9f9fe6588e1481d33ee",
|
||||
"job-tracker-ui/out/_next/static/chunks/turbopack-25fzg9ay_1ss-.js": "c40f39e993a30c96d6247bb3a7b581538bb046efe8ef8ec07bea3ba32291750f",
|
||||
"job-tracker-ui/out/_not-found/__next._full.txt": "620a8e0060f623db56f9586c08c20827052d8e170217286b215fa74a263c69d1",
|
||||
"job-tracker-ui/out/_not-found/__next._not-found/__PAGE__.txt": "01c749ccbd567d270280feb8ef04173ce82ac43db9599844101d7b7b12d0a2ef",
|
||||
"job-tracker-ui/out/_not-found/__next._tree.txt": "bcf0e8ae1b690a70bdfed9f0178f337f86be732f4ed98d56a9d7ec0b92e944ee",
|
||||
"job-tracker-ui/out/_not-found.html": "72e30d3b9ee3fd4130a19f867e5955be376cd9e431895bb6379a1779016ed8ab",
|
||||
"job-tracker-ui/out/_not-found.txt": "620a8e0060f623db56f9586c08c20827052d8e170217286b215fa74a263c69d1",
|
||||
"job-tracker-ui/out/favicon.ico": "8d4923e2c487805ea9f852a685b2cf0fb10512ded8290d2a5c37d1cc8fd0702a",
|
||||
"job-tracker-ui/out/favicon.svg": "63ecf8f37f8bb146ecfae3917187c6b692d4e801641e8a314486a4007912f3a3",
|
||||
"job-tracker-ui/out/index.html": "71e631255ccd0b7145f7737107f5c056be15656487194a732574e4c832a178a2",
|
||||
"job-tracker-ui/out/index.txt": "7fe18a67ad3fcce522792c8f37a0384d024857ed2568ae828644804ef7e89cd3",
|
||||
"job-tracker-ui/out/logo192.png": "bc652031597fabd19b9f14e22a71f809490d218037521b3b64d013418c1390b4",
|
||||
"job-tracker-ui/out/logo512.png": "5129e9bc1ba812b711fd9a646d3a38a906d365a26ee685df183b8752458944d4",
|
||||
"job-tracker-ui/out/manifest.json": "2667ce63c2e0835b7007239816a5597639321d333da396a78638dfa9e8a7c935",
|
||||
"job-tracker-ui/out/mockups/dashboard.svg": "318be3adb1324c26eb30f05572a29528a3e38331c6a604652eef75b54f8c29dc",
|
||||
"job-tracker-ui/out/mockups/pipeline.svg": "db2ef41faabeb90e7ce85413e168581686c54535d970fc7d8deda3888a479de4",
|
||||
"job-tracker-ui/out/mockups/workspace.svg": "9bbab22349147c7b01d6e18c93c622a6f8aed6dedaf23715189ab54d60e1ddbd",
|
||||
"job-tracker-ui/out/robots.txt": "e5ab0d231eeb01b4a982d1c79a6729cac9797ad15a69247e4f28ba6afc149b4c"
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
# Import and conversion count wording
|
||||
|
||||
Source/verifier44112c7c, baseline50e16ff2. Existing plural keys remain unchanged. New `importedJob` and `convertedRow` keys select the one-item form in EN/NB; zero/multiple values retain existing plural wording. Import payloads, partial-success reporting, Last import count, CSV parser and native download bytes are unchanged. These are two finite literal-key choices, not unbounded runtime translation keys.
|
||||
|
||||
PASSED:50 cases/six suites (import/export lifetime, Settings lifetime, picker activation, catalogue parity/placeholders and language provider). Four new language-table cases cover zero/one/two conversion and one/two import messages; earlier35/39 cases overlap. RED receipts retain the two conversion and two import language failures before the fix. Build/TypeScript and scoped ESLint passed.
|
||||
|
||||
PASSED:two paired actual-UI profiles (390/Bokmål/dark touch and1440/English/light mouse), each converting zero/one/two rows. Six native JSON downloads and six accessibility scans passed, with exact output row counts/Unicode and visible singular/plural messages. No API writes, page exceptions or unavailable fixture reads; fonts blocked. This is a finite copy-focused matrix, not the full export/session matrix. The earlier36-download package retains its original source identity. Mobile Bokmål singular feedback was visually inspected.
|
||||
|
||||
Evidence: `evidence/import-conversion-counts/`; source/evidence/export content bindings: `IMPORT_CONVERSION_COUNT_SOURCE_MANIFEST.json`. Native gzip receipts preserve downloaded bytes. No physical CV/PDF, API, dependency, schema or additional locale changed.
|
||||
|
||||
Rollback reverts44112c7c and reruns affected copy/catalogue checks. Full visible-text, native-language/European, physical-device, integrated security and final release acceptance remain open. Historical188 dynamic reviews remain historical; this report accounts for the two changed finite choices on the current source.
|
||||
@@ -1,126 +0,0 @@
|
||||
{
|
||||
"sourceContentCommit": "44112c7cbb480f96e0c9ca7a5dbed35650aa3a53",
|
||||
"policy": "LF-normalised source and text evidence; raw PNG/gzip/zip/export. Content binding for offline UI verification; release candidate/image identity remains separate.",
|
||||
"sources": {
|
||||
"job-tracker-ui/src/App.tsx": "e0c50ec92954b90cf62b9d8b8e0d5b5802c2408e577e5e255a8d78c3dfdf7135",
|
||||
"job-tracker-ui/src/components/SettingsView.tsx": "250b80b2d18f82ab63e7341c0779380345f386acc0d89161064d8e41439636d2",
|
||||
"job-tracker-ui/src/components/ImportExportJobs.tsx": "1f3a9ed936bccd35e69bf05449f3615af5b7e8f3bf1fb52b99b39a3ae6cb253b",
|
||||
"job-tracker-ui/src/sessionBoundary.ts": "09edca77c98294818d2ad0c409ce595f1b6ca0c1f60419fc1078b70f96f5b7b9",
|
||||
"job-tracker-ui/src/api.ts": "f75ac7be07a743396843ddad5fd3371e2d5fd3d9c5d933e09e26fae2159f2378",
|
||||
"job-tracker-ui/src/i18n/I18nProvider.tsx": "dfa8d95510a7dd872e1b9bbddf9bb4ab31da4d4b5e932b0099397d11e08ad108",
|
||||
"job-tracker-ui/src/i18n/translations.ts": "1bef579f8bb593ed3a888780e9d3472531f93b5602a6e92d9df8fa062060c1e9",
|
||||
"job-tracker-ui/src/job-export-lifetime.test.tsx": "c49f392f8fb15ade6f87bd1515f124432a3768c9b9ff0b5a3e4fd71bdeefa06c",
|
||||
"job-tracker-ui/src/job-import.test.tsx": "2baa932bb464490d12cddfafcbea2d19795725519f380d7db803369a71c0288d",
|
||||
"job-tracker-ui/src/settings-import-lifetime.test.tsx": "24af2a5954533087ddbff40659ff9f8dcf70805435dca772314c2be7d8bf6133",
|
||||
"job-tracker-ui/src/file-picker-activation.test.tsx": "accb87f94a7b36373eec6583a391a17ede7e7779cf18d81d4a86b43e0bd6afbe",
|
||||
"job-tracker-ui/scripts/verify-job-export-lifetime.mjs": "bea2e5a04b7cad4f2af6b1dd2e19c505261ab171dcd686b6662332aa2b838646",
|
||||
"job-tracker-ui/src/translation-catalogue.test.ts": "f20e8099f2c4dda76574ea3ed1e95b743eef5da82507d7cbc3f9925d52356b98",
|
||||
"job-tracker-ui/src/i18n-provider.test.tsx": "520b8559ebd0c206649008c98705c24bd8caac7e00a642984a75b11f7d851fbe",
|
||||
"job-tracker-ui/package.json": "3745394e406cefa40d30a87e840bccb359be147bac6ffba736e2ae90898a8626",
|
||||
"job-tracker-ui/package-lock.json": "bf31e90d7af03e8af059db2aaf893925b9e8881a30a1688034ed88ef45d4fcab"
|
||||
},
|
||||
"evidence": {
|
||||
"docs/i18n/evidence/import-conversion-counts/1440-en-light-converted-0.gz": "50c15d921df28492e2d9bf2da5d1cd5c78ee416bdcf478074db63d76d2381cba",
|
||||
"docs/i18n/evidence/import-conversion-counts/1440-en-light-converted-1.gz": "2117b71f51b07c27587ff99d40acd9ef43b538a62658ce52ea060ab4a3c2cba5",
|
||||
"docs/i18n/evidence/import-conversion-counts/1440-en-light-converted-2.gz": "7f3553fe748c77febb7f3b312d152002e44c1608e05e99b05b7865dac0154326",
|
||||
"docs/i18n/evidence/import-conversion-counts/1440-en-light-count-0.png": "06b4cae9dcda200767c296e923ed5e8eac7bdb53721c1f55ffda9bb0b7c06d63",
|
||||
"docs/i18n/evidence/import-conversion-counts/1440-en-light-count-1.png": "7c764a401d219d2bd5452bea3380067d396ca0ffc052b06bdd2bfa705c346aea",
|
||||
"docs/i18n/evidence/import-conversion-counts/1440-en-light-count-2.png": "8b901708e2b8c8bea11765970539b0d28383e30a5243dc6ddd4c59ddb8a87135",
|
||||
"docs/i18n/evidence/import-conversion-counts/390-nb-dark-converted-0.gz": "50c15d921df28492e2d9bf2da5d1cd5c78ee416bdcf478074db63d76d2381cba",
|
||||
"docs/i18n/evidence/import-conversion-counts/390-nb-dark-converted-1.gz": "2117b71f51b07c27587ff99d40acd9ef43b538a62658ce52ea060ab4a3c2cba5",
|
||||
"docs/i18n/evidence/import-conversion-counts/390-nb-dark-converted-2.gz": "7f3553fe748c77febb7f3b312d152002e44c1608e05e99b05b7865dac0154326",
|
||||
"docs/i18n/evidence/import-conversion-counts/390-nb-dark-count-0.png": "05b956b3267ccc9e1c928aaa987241c2d4f9db9f058a5d5de0124d1dc261d10c",
|
||||
"docs/i18n/evidence/import-conversion-counts/390-nb-dark-count-1.png": "cc3403c35dcb011bde0a68d2b713c65a237abc6bd6fb449b0bbdb7029b32b3fb",
|
||||
"docs/i18n/evidence/import-conversion-counts/390-nb-dark-count-2.png": "9292a818d04ccd97f709d1b6289b4cafbdf781b09a3e8156ed9cf0304a288154",
|
||||
"docs/i18n/evidence/import-conversion-counts/BROWSER.json": "b7e83a199c70ff58c93211a1d04da0630470927b3f4c22cf6cc8a4056b10d871",
|
||||
"docs/i18n/evidence/import-conversion-counts/BROWSER.txt": "be89f2d03cc906ed953e6f6fb4f90a936b67633b7947d8d59a5c091a0ee8a649",
|
||||
"docs/i18n/evidence/import-conversion-counts/BUILD.txt": "b5633b37143e111a2fd97dc5b7b0fc244c7587fc5c0c11c245f6c4c1f2e98dbc",
|
||||
"docs/i18n/evidence/import-conversion-counts/LINT.txt": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"docs/i18n/evidence/import-conversion-counts/RED_CONVERSION.txt": "411b9f558921d6f85643511b433c82b9289b94c874ca267a192040a965f70170",
|
||||
"docs/i18n/evidence/import-conversion-counts/RED_IMPORT.txt": "148548165d5b601ea43c765a07d7f61f2d7b1fb5264377672a0bdd6c8fe9a32b",
|
||||
"docs/i18n/evidence/import-conversion-counts/TESTS.txt": "a1efa7de41b86d6d48b70c97da55e9ef0e9de9fcce4ca9d5036787bcc198b8d7",
|
||||
"docs/i18n/IMPORT_CONVERSION_COUNTS.md": "a6fcfb1b918bfd0cd9ba235d27675a8829621265f83d96dc09b93c792bbfdcba"
|
||||
},
|
||||
"export": {
|
||||
"job-tracker-ui/out/404.html": "1ca05af72181de6df1a2b0c07fe5d151fb058344c07e204a78648db4ec1c6e64",
|
||||
"job-tracker-ui/out/__next.__PAGE__.txt": "838e2b173fe18664741187b814d92cb9006a97f70f2e61d866e88090dbe531c8",
|
||||
"job-tracker-ui/out/__next._full.txt": "dae993f53affb686262f8ae8e75718ef05b43cdf4b9b7391376fe8ca4fe41ccf",
|
||||
"job-tracker-ui/out/__next._tree.txt": "ce646215db5c8507b39e758174f959ab2416b6d8fbe67b5f4d14103db564fc13",
|
||||
"job-tracker-ui/out/_next/static/chunks/0--vhwu1kmht5.js": "426fae50ff0485fb6af8e28a7d1751dfaefcb6118a24dab39b3a7099d38c18dd",
|
||||
"job-tracker-ui/out/_next/static/chunks/0-_aq6ipzcshj.js": "39f90c215bf52aef6274ed3dcc0f8af32e21a37fe8845b3bca0d6ea60da6a8c2",
|
||||
"job-tracker-ui/out/_next/static/chunks/05rgc5zsm9p5i.js": "1da7305ab9d8e95795327cce11a16db4c56d90429d7e1dea4c4088c085f20d69",
|
||||
"job-tracker-ui/out/_next/static/chunks/0afg9bl7a8pj5.js": "bd0cec651950d5007f84273af5be8d8255806da4db54238f5c512442c7449459",
|
||||
"job-tracker-ui/out/_next/static/chunks/0ah1fzqmie05a.js": "5c65505a7dcbac63ac71d254e619a4c800943bfb4fa16cd40c10cdbe7e9b6e31",
|
||||
"job-tracker-ui/out/_next/static/chunks/0b3nrgli_w65x.js": "bf23e1a05a97de3a950e76eb206b2fbbe9003460891ecd5ab091155aa385badc",
|
||||
"job-tracker-ui/out/_next/static/chunks/0bdt7ln111t48.js": "6184b1a61f22e2a640c17941634fdc75678ce93d142848d9f07f163e0d1fd201",
|
||||
"job-tracker-ui/out/_next/static/chunks/0cz1d0mv5g_q7.js": "0973c1d64c88adc8e3c950410cb58b288f72118d5965b78049438deb8f2f9683",
|
||||
"job-tracker-ui/out/_next/static/chunks/0og1crk78cn4a.js": "aa5031605cb2f46a612e94d9d71473f48a71aa4a5acfe8fe5f2dfc66d951ab40",
|
||||
"job-tracker-ui/out/_next/static/chunks/0pvbhqkwp15b6.js": "f210cc1a8c203de6008b6137c0324afabb33f233c1ab56800fe9e6c963c0c34a",
|
||||
"job-tracker-ui/out/_next/static/chunks/0q20g9o8x-k8z.js": "3d4d9086985419aa8866b032158196c774acb8bf318f3c8245508c8daa9c5148",
|
||||
"job-tracker-ui/out/_next/static/chunks/0q_pwu9jxv4-d.js": "42a43b3d7245a413c7c29b4cbe87823037a6dbc637e2e282c92405470e0f575d",
|
||||
"job-tracker-ui/out/_next/static/chunks/0qxm1h9uqfgpa.js": "a5af3192c76f3b8dac5c17afbe90d96a5c7652810ce69b7f39fbcf1f1231fd8c",
|
||||
"job-tracker-ui/out/_next/static/chunks/0ta69108309yl.js": "07b8069d13ddaf7aaa24daf1070144a2e98b444ca162b628b8bfb8e1068d2967",
|
||||
"job-tracker-ui/out/_next/static/chunks/0v1q0j141eyli.js": "8180d4c9dae8da28079152624739b603d6d63c62554015b1bf9a82cd5bbdc5fb",
|
||||
"job-tracker-ui/out/_next/static/chunks/0vo4_3wcjs1gy.js": "5e4d305fc346f9ecf48328ab0416397d8bd7c100f0de99dea16d2a1463b386a9",
|
||||
"job-tracker-ui/out/_next/static/chunks/0zep-wknuuxm3.js": "cc13d0dc908a4b047a165a50a226b787ee7707135b3f2c5894aab8cbd618a29c",
|
||||
"job-tracker-ui/out/_next/static/chunks/1-8ykqf0n88k2.js": "eb208124ec838cb9a9ae366745bd81fba1c35eeceac128c567bbb7977ebb6a2e",
|
||||
"job-tracker-ui/out/_next/static/chunks/10qxrc5f9nore.js": "512bfc44077703fa4e03e15ca48acf3501231c5e2cb9bf7beb2ec30224fe287b",
|
||||
"job-tracker-ui/out/_next/static/chunks/1435in_k_-dhc.js": "4757476512d5c4dd25f9264a18b304ed4824b23aff1c09e134fcbff21d9c36b6",
|
||||
"job-tracker-ui/out/_next/static/chunks/145oicobmjvm7.js": "d6bbbdeed1381652dc7412e5ce673a077579ecd5cee8934cb6b533c814098764",
|
||||
"job-tracker-ui/out/_next/static/chunks/14e7ovj0s3elm.js": "070567dd4d23fb9fa0b9ba132185a697af6578045d43b2b1c7bbb2a1594d935d",
|
||||
"job-tracker-ui/out/_next/static/chunks/15saa2mllmdp7.js": "6664972f61e1669d2ca1ed9af467df87d316efeadf59496ce8c68d8c84fd7512",
|
||||
"job-tracker-ui/out/_next/static/chunks/16lfece6cnlln.js": "716363ba044f30b0e70440756b4e5eafa2d25f2e1628e855e3bc4ab9eabee3d3",
|
||||
"job-tracker-ui/out/_next/static/chunks/188aj_hr_p4eq.js": "f10e4af24bebfb8b9e7306a5688ef45f07f280c920dc01815ac578fbe18e2182",
|
||||
"job-tracker-ui/out/_next/static/chunks/1avt7t-z_q80r.js": "8cbd919d971eaf46e508f9e6b073a9183a29457c3c42c9566ec74b018894c061",
|
||||
"job-tracker-ui/out/_next/static/chunks/1ke8pzecwofrg.css": "32e9ab963ebadebcbe2c68dffb24cfbfc8cc24255ad91b48b7941fc777bf7439",
|
||||
"job-tracker-ui/out/_next/static/chunks/1pcns9f7sl8yk.js": "1a1b889438e68c64984964627315e806548b753c40c6c012c706ca03edc3dfe5",
|
||||
"job-tracker-ui/out/_next/static/chunks/1req80b9jj38r.js": "eee4d2e3789e1215195dba99ad0f09d34f8c83da848322b76054722233e9dae3",
|
||||
"job-tracker-ui/out/_next/static/chunks/1svx1qnrof8xa.js": "111c502a1ca939f7bf971ed1b3e3cda011b130c313a7f7df742ae4b1e14486ae",
|
||||
"job-tracker-ui/out/_next/static/chunks/1w3q8yrcjn2jk.js": "365200e241ee9290e93d7c2fdba169f2b0a8e774541e3cbf3f6f2781110fa644",
|
||||
"job-tracker-ui/out/_next/static/chunks/1xn023_28rgzj.js": "4f7f2108d030a48d039930736c92a55710975dddf419fe673f84d92899b1f575",
|
||||
"job-tracker-ui/out/_next/static/chunks/1xwc-b795syag.css": "f73c002233f931ca14d0ae58815c47ca9f2659f25b1547a6d1fdca12a2a00b3f",
|
||||
"job-tracker-ui/out/_next/static/chunks/22wx8--1b9tnq.js": "3f7d8e762371262c6a740b4dac21725b424847319afac46055e97074a99ff5f5",
|
||||
"job-tracker-ui/out/_next/static/chunks/24_cq-0_-oa1r.js": "f81cb5ffd0dd4a953d0dc48610226123cc99d577371809ed8c73b901a7bb988c",
|
||||
"job-tracker-ui/out/_next/static/chunks/274f8aifi_wup.js": "bc5bc5617b4acbbbb1c7966322c508bb5554024d78e71e523e27f7f5bba5a8ab",
|
||||
"job-tracker-ui/out/_next/static/chunks/2edynwqicn6ym.js": "c694af15bb117955e6f7f0962f47495b2be017dfdea93b6d4ede4d5e4fcd7efd",
|
||||
"job-tracker-ui/out/_next/static/chunks/2ha8nlh4rv92e.js": "5cb4b4cee708f35ed54ef6289269fa866afbaa64fd47bf9275ff691664d3132e",
|
||||
"job-tracker-ui/out/_next/static/chunks/2php_9zkhprrb.js": "4f91e63b1181693e7a3b269b1b24004d9abee13413b8396a916799b8c01620e8",
|
||||
"job-tracker-ui/out/_next/static/chunks/2pllop_q35dkw.js": "21c9a7c53763010317a2d09460066017e1fd192691e6a0bd83ed20ea6e1fe9dd",
|
||||
"job-tracker-ui/out/_next/static/chunks/2s2gjr6ro25dj.js": "7489e2ac285a05b563c2bcb4eaf9274bf930f2a7385f17d6d5e6850064b88b10",
|
||||
"job-tracker-ui/out/_next/static/chunks/2sj7ufu_6n9af.js": "69d7471c01b8001d52abc848910a8c35457dac3aaa4ce66eae2a03ca29ad623b",
|
||||
"job-tracker-ui/out/_next/static/chunks/2vo512u2siee8.js": "30cdfec178acfe49c1e0ae28fb23c67507bcf7f7b17008b48c05198f638c348d",
|
||||
"job-tracker-ui/out/_next/static/chunks/30-q9iimktiql.js": "db89d5da1f101216d7f99e9518dc7f5ed84f8b40ac84a6ea55f73c01bf1aca1b",
|
||||
"job-tracker-ui/out/_next/static/chunks/315n7snxk3fgw.js": "1993429aafa0753d5e9fd1ca63a4f6079ce7f7f37faa44716191f59c972c4d41",
|
||||
"job-tracker-ui/out/_next/static/chunks/33at73n-mzpir.js": "1605cc3311cc6ca3b2f44b2e0217fe5441a2799fa32b0b0c94d7634f4861ac83",
|
||||
"job-tracker-ui/out/_next/static/chunks/357yqeklh7414.js": "0192ab7198ebbe299d34a934c504dd4b562d1cccebb6e9d4c5163930c881b14c",
|
||||
"job-tracker-ui/out/_next/static/chunks/35_dl1zkx1-zx.js": "69bb75afcbd9ea9c0b7e870eb2b5796bdb24d0db7810573302fa04a497cc2c8c",
|
||||
"job-tracker-ui/out/_next/static/chunks/35pq4ixaltkev.js": "f1e9d53e2481de01d7b04aa938397c2545b7d7dc42ce3d0ac5cd3f1141bda182",
|
||||
"job-tracker-ui/out/_next/static/chunks/3_4dnl1l3809g.js": "50288c2864a9e8c7ef25c93762edb86e4e617778737b5b5a028c53c5b93d3b70",
|
||||
"job-tracker-ui/out/_next/static/chunks/3bqn9b34na0b9.js": "f1b8ebcc1b22251c33c9f3a5d11c1f893cad2da2e8744a441e790f7347aa9e73",
|
||||
"job-tracker-ui/out/_next/static/chunks/3gkylew_qn7cw.js": "7e6c74c81be0c41ab433e36d65b914f62c48f332922e27f7cc953476f4dd78cb",
|
||||
"job-tracker-ui/out/_next/static/chunks/3la4obitihzpv.js": "9a5a57b46db389b98f1fd5baa86eba1a360300dae9d1ff3ffeae7bc3378135b9",
|
||||
"job-tracker-ui/out/_next/static/chunks/3nzgmz1t8r_64.js": "de2688cd6bfc8b411e9445d857cd1d776f9960f9d63e9f06c24cbc2a98040fca",
|
||||
"job-tracker-ui/out/_next/static/chunks/3q4v10rrqy40n.js": "d87ff7b7a0f07d0d92eab3876481eb686a12d9c43d8b92cbe406aefa227a11c1",
|
||||
"job-tracker-ui/out/_next/static/chunks/3xbcgmkebja05.js": "bb1e98db2657a4b067676ead2ea26172478a79c1b384a9f9fe6588e1481d33ee",
|
||||
"job-tracker-ui/out/_next/static/chunks/turbopack-25fzg9ay_1ss-.js": "c40f39e993a30c96d6247bb3a7b581538bb046efe8ef8ec07bea3ba32291750f",
|
||||
"job-tracker-ui/out/_next/static/KgOLT2oshx6dHtAKI5NUs/_buildManifest.js": "9476e0afd3f9da68a64e6ec58631191fd3eaca62c9f5a377e7517fe9a89e59ea",
|
||||
"job-tracker-ui/out/_next/static/KgOLT2oshx6dHtAKI5NUs/_clientMiddlewareManifest.js": "5483e3295dc35dfe29ea932efc85341c916f10ff78ff5b0e965e003710893a4a",
|
||||
"job-tracker-ui/out/_next/static/KgOLT2oshx6dHtAKI5NUs/_ssgManifest.js": "678f6ce2cb80b1fe72fc67e7412be6e2ab6ada083111b64f7c40d35e3cba5e00",
|
||||
"job-tracker-ui/out/_not-found/__next._full.txt": "37dee5851fdf4b1bbaabdc143380d8dffdd07999a2c08756fd68b713ecc4826f",
|
||||
"job-tracker-ui/out/_not-found/__next._not-found/__PAGE__.txt": "001d6c3334faac5f519229a9ad22a7f8b9999e853165ea57cefdf069bd79b554",
|
||||
"job-tracker-ui/out/_not-found/__next._tree.txt": "023a4c313d4706642914da119ee1fc32ea6628de40a1e8231c294f1b5c6d02ad",
|
||||
"job-tracker-ui/out/_not-found.html": "1ca05af72181de6df1a2b0c07fe5d151fb058344c07e204a78648db4ec1c6e64",
|
||||
"job-tracker-ui/out/_not-found.txt": "37dee5851fdf4b1bbaabdc143380d8dffdd07999a2c08756fd68b713ecc4826f",
|
||||
"job-tracker-ui/out/favicon.ico": "8d4923e2c487805ea9f852a685b2cf0fb10512ded8290d2a5c37d1cc8fd0702a",
|
||||
"job-tracker-ui/out/favicon.svg": "63ecf8f37f8bb146ecfae3917187c6b692d4e801641e8a314486a4007912f3a3",
|
||||
"job-tracker-ui/out/index.html": "85cacbcd2e4209f2fc1af7e22b6e0d7ef23b3d2fd8612b4a8b105b545a9f6586",
|
||||
"job-tracker-ui/out/index.txt": "dae993f53affb686262f8ae8e75718ef05b43cdf4b9b7391376fe8ca4fe41ccf",
|
||||
"job-tracker-ui/out/logo192.png": "bc652031597fabd19b9f14e22a71f809490d218037521b3b64d013418c1390b4",
|
||||
"job-tracker-ui/out/logo512.png": "5129e9bc1ba812b711fd9a646d3a38a906d365a26ee685df183b8752458944d4",
|
||||
"job-tracker-ui/out/manifest.json": "2667ce63c2e0835b7007239816a5597639321d333da396a78638dfa9e8a7c935",
|
||||
"job-tracker-ui/out/mockups/dashboard.svg": "318be3adb1324c26eb30f05572a29528a3e38331c6a604652eef75b54f8c29dc",
|
||||
"job-tracker-ui/out/mockups/pipeline.svg": "db2ef41faabeb90e7ce85413e168581686c54535d970fc7d8deda3888a479de4",
|
||||
"job-tracker-ui/out/mockups/workspace.svg": "9bbab22349147c7b01d6e18c93c622a6f8aed6dedaf23715189ab54d60e1ddbd",
|
||||
"job-tracker-ui/out/robots.txt": "e5ab0d231eeb01b4a982d1c79a6729cac9797ad15a69247e4f28ba6afc149b4c"
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
# Shared MUI widget locale continuation
|
||||
|
||||
Source and verifier: `cb9d0397` on `codex/a3-ui-10`.
|
||||
|
||||
The live application locale boundary now merges the installed Material UI Bokmål component defaults into the existing theme. English derives from the original parent theme. Existing component defaults and both colour schemes are retained; no dependency, backend preference contract or generated-content language changed. This fixes English Autocomplete Open/Clear labels observed in Bokmål date-widget screenshots and supplies the installed defaults to other Material widgets that use them. Explicit per-component labels still require their own coverage.
|
||||
|
||||
## Verification
|
||||
|
||||
- RED: the new real Autocomplete regression could not find Bokmål Open before the fix. Two earlier picker tests passed. Retained `RED.txt`.
|
||||
- PASSED: 20 cases in four suites: real picker/shared controls, deterministic theme, loaded-theme states and Edit revision handling. The new case switches NB → EN → NB, retains the occupation selection and dark colour scheme. The Clear icon is normally hover-hidden; its title/ARIA label is checked directly. Intermediate test failures from querying this hidden icon by accessible role were corrected; these are not application failures or passing evidence.
|
||||
- PASSED: production build, final TypeScript check and scoped ESLint. The final TypeScript check followed the test-selector correction; application source was unchanged after the build.
|
||||
- PASSED: nine real-widget journeys / 27 accessibility captures / 18 intercepted fixture writes. Each of Los Angeles, Oslo and Kiritimati used EN/light/1440 mouse, NB/dark/390 touch and NB/light/768 touch. Every journey checked live Open/Clear labels, retained company selection, unchanged colour scheme, date selection/payloads, unsaved draft and no extra detail reads. Zero page errors/unavailable reads. External Google Fonts requests were blocked.
|
||||
- The refreshed dark/mobile screenshot was visually inspected. This rerun overlaps the earlier flat-dialog matrix; do not add its counts to the earlier nine/27.
|
||||
|
||||
Evidence: `evidence/shared-widgets/`. Source/evidence/export manifest: `SHARED_WIDGET_SOURCE_MANIFEST.json`. Bindings describe scoped content, not a release image or whole-application acceptance.
|
||||
|
||||
## Limits and rollback
|
||||
|
||||
Native-language, physical-device/assistive-technology, all-route/default-string coverage and additional European locales remain open. API traffic and writes used intercepted synthetic fixtures, not real persistence or services. No live provider/model/security/recovery qualification is implied. Revert `cb9d0397` to roll back the locale merge and its regressions; there is no migration or data change.
|
||||
@@ -1,136 +0,0 @@
|
||||
{
|
||||
"sourceContentCommit": "cb9d039786d1ce32e85dc857c55e6e8a3c2007bc",
|
||||
"policy": "LF-normalised source and text evidence; raw PNG/gzip/zip/export. Content binding for offline UI verification; release candidate/image identity remains separate.",
|
||||
"sources": {
|
||||
"job-tracker-ui/src/App.tsx": "e0c50ec92954b90cf62b9d8b8e0d5b5802c2408e577e5e255a8d78c3dfdf7135",
|
||||
"job-tracker-ui/src/ClientApp.tsx": "327cf5f9cf213c4d8146bf6fa2c0c0d20462b71e03ed0d73105823c5f26b0424",
|
||||
"job-tracker-ui/src/DateLocalizationProvider.tsx": "cd46fdfda8c145d7c634e1ed6a714ffeb898a5ef30d705aa019390c9b8456870",
|
||||
"job-tracker-ui/src/i18n/I18nProvider.tsx": "dfa8d95510a7dd872e1b9bbddf9bb4ab31da4d4b5e932b0099397d11e08ad108",
|
||||
"job-tracker-ui/src/i18n/translations.ts": "a0b706a859264773418ec3f1275332e97add913de65c4d6efaef04b23ae8e1c5",
|
||||
"job-tracker-ui/src/components/AddJobModal.tsx": "e3b846dc276e8d2a8084bf6e7e670a0639a46eea0788e90afa81722e6028f369",
|
||||
"job-tracker-ui/src/components/EditJobDialog.tsx": "30a43317aff528e26f3bbf65c14b61d7f9171c66ee4f8255b5b56584aca9e88b",
|
||||
"job-tracker-ui/src/date-picker-localisation.test.tsx": "68b157072455df53b08341f872d3e9651b2650c51b36f94e710631a2e2a8ed51",
|
||||
"job-tracker-ui/scripts/verify-job-date-widgets.mjs": "e8364113e659860465e5fe88a3a5a3692b2fb81a7413311a27dc399a3da4e6ce",
|
||||
"job-tracker-ui/package.json": "3745394e406cefa40d30a87e840bccb359be147bac6ffba736e2ae90898a8626",
|
||||
"job-tracker-ui/package-lock.json": "bf31e90d7af03e8af059db2aaf893925b9e8881a30a1688034ed88ef45d4fcab"
|
||||
},
|
||||
"evidence": {
|
||||
"docs/i18n/evidence/shared-widgets/add-America-Los_Angeles-en-1440-light.png": "438d9c4a58e0d0cd4310deecc0185e29f8df2c81761282f5a5132354d35baa55",
|
||||
"docs/i18n/evidence/shared-widgets/add-America-Los_Angeles-nb-390-dark.png": "deca21bc4a1bd9267a601e57176d9ae9cd56cf4adac4246d87fba3b8459f10f9",
|
||||
"docs/i18n/evidence/shared-widgets/add-America-Los_Angeles-nb-768-light.png": "69d2f6c99585714a57c62e8bdb4b24201251852293569a268ab45799250dec7b",
|
||||
"docs/i18n/evidence/shared-widgets/add-Europe-Oslo-en-1440-light.png": "1233effc1a3866f05723da0502bce17acbaed73f8bb0e231686c68c281866891",
|
||||
"docs/i18n/evidence/shared-widgets/add-Europe-Oslo-nb-390-dark.png": "deca21bc4a1bd9267a601e57176d9ae9cd56cf4adac4246d87fba3b8459f10f9",
|
||||
"docs/i18n/evidence/shared-widgets/add-Europe-Oslo-nb-768-light.png": "69d2f6c99585714a57c62e8bdb4b24201251852293569a268ab45799250dec7b",
|
||||
"docs/i18n/evidence/shared-widgets/add-Pacific-Kiritimati-en-1440-light.png": "1233effc1a3866f05723da0502bce17acbaed73f8bb0e231686c68c281866891",
|
||||
"docs/i18n/evidence/shared-widgets/add-Pacific-Kiritimati-nb-390-dark.png": "deca21bc4a1bd9267a601e57176d9ae9cd56cf4adac4246d87fba3b8459f10f9",
|
||||
"docs/i18n/evidence/shared-widgets/add-Pacific-Kiritimati-nb-768-light.png": "69d2f6c99585714a57c62e8bdb4b24201251852293569a268ab45799250dec7b",
|
||||
"docs/i18n/evidence/shared-widgets/BROWSER.json": "f2ef5b1520df17f47b2599c61126c1f0b9b1c76e05e6430f933b222faa0d33d2",
|
||||
"docs/i18n/evidence/shared-widgets/BROWSER.txt": "3577da81fe4e2847fdc52aba5591b74e2b3bfc741e27e07c3d6024f24ad9d827",
|
||||
"docs/i18n/evidence/shared-widgets/BUILD.txt": "3dfbb92baa539582d9767cb481ef3fb0709f8b73bb15f79143e1a697087f42f5",
|
||||
"docs/i18n/evidence/shared-widgets/calendar-America-Los_Angeles-en-1440-light.png": "a5a799597cbd3f9d09e445e30994674c7d2a6102a2707d16bfd8409ea12a9c36",
|
||||
"docs/i18n/evidence/shared-widgets/calendar-America-Los_Angeles-nb-390-dark.png": "738229a9056084a73ace7a611d50573fb8642ea331d4e05045948bd152f4fb7e",
|
||||
"docs/i18n/evidence/shared-widgets/calendar-America-Los_Angeles-nb-768-light.png": "bbbc82f449c9a10b24130f45b6dca0d7872abb261ca988e6303b1e0bcabf8769",
|
||||
"docs/i18n/evidence/shared-widgets/calendar-Europe-Oslo-en-1440-light.png": "df09fdde0e79da9f2c4c330af99da58be033dcc43eb2ea9801d83dbf9a55cc6f",
|
||||
"docs/i18n/evidence/shared-widgets/calendar-Europe-Oslo-nb-390-dark.png": "8b0eb35161b29b232aeab3d8df0ae4a37d2897154282db6a85e0467d33f358e3",
|
||||
"docs/i18n/evidence/shared-widgets/calendar-Europe-Oslo-nb-768-light.png": "ca67e1657feb25d0cc082e66219f74397b0df375705e2e36761e62f2f15e943e",
|
||||
"docs/i18n/evidence/shared-widgets/calendar-Pacific-Kiritimati-en-1440-light.png": "df09fdde0e79da9f2c4c330af99da58be033dcc43eb2ea9801d83dbf9a55cc6f",
|
||||
"docs/i18n/evidence/shared-widgets/calendar-Pacific-Kiritimati-nb-390-dark.png": "8b0eb35161b29b232aeab3d8df0ae4a37d2897154282db6a85e0467d33f358e3",
|
||||
"docs/i18n/evidence/shared-widgets/calendar-Pacific-Kiritimati-nb-768-light.png": "ca67e1657feb25d0cc082e66219f74397b0df375705e2e36761e62f2f15e943e",
|
||||
"docs/i18n/evidence/shared-widgets/edit-America-Los_Angeles-en-1440-light.png": "8a997149bb79bf466c77672e39ab57ccf3062808b59cdafc22e2dcad04886b89",
|
||||
"docs/i18n/evidence/shared-widgets/edit-America-Los_Angeles-nb-390-dark.png": "af756c322d271dd51f45381d814354d51ffd18c6ff71f4ed5cf0ec206e5fd1f2",
|
||||
"docs/i18n/evidence/shared-widgets/edit-America-Los_Angeles-nb-768-light.png": "7c100cde0a2387b8a266de98385008661271fb1abf2983e609e12212edfae71e",
|
||||
"docs/i18n/evidence/shared-widgets/edit-Europe-Oslo-en-1440-light.png": "dd7da891f399ee529795a46e2ac2d00574e67ed83b89d7f3b5c9fcd610e04b5e",
|
||||
"docs/i18n/evidence/shared-widgets/edit-Europe-Oslo-nb-390-dark.png": "af756c322d271dd51f45381d814354d51ffd18c6ff71f4ed5cf0ec206e5fd1f2",
|
||||
"docs/i18n/evidence/shared-widgets/edit-Europe-Oslo-nb-768-light.png": "7c100cde0a2387b8a266de98385008661271fb1abf2983e609e12212edfae71e",
|
||||
"docs/i18n/evidence/shared-widgets/edit-Pacific-Kiritimati-en-1440-light.png": "dd7da891f399ee529795a46e2ac2d00574e67ed83b89d7f3b5c9fcd610e04b5e",
|
||||
"docs/i18n/evidence/shared-widgets/edit-Pacific-Kiritimati-nb-390-dark.png": "af756c322d271dd51f45381d814354d51ffd18c6ff71f4ed5cf0ec206e5fd1f2",
|
||||
"docs/i18n/evidence/shared-widgets/edit-Pacific-Kiritimati-nb-768-light.png": "7c100cde0a2387b8a266de98385008661271fb1abf2983e609e12212edfae71e",
|
||||
"docs/i18n/evidence/shared-widgets/LINT.txt": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"docs/i18n/evidence/shared-widgets/RED.txt": "8b75af1801eac16e865cd938a4b762d9940b73f7e2962bde083032339176c880",
|
||||
"docs/i18n/evidence/shared-widgets/TESTS.txt": "8e80218d6b3d046027e4b4c7060118f09f46fb506e875da3988ac92ff9827920",
|
||||
"docs/i18n/evidence/shared-widgets/TYPECHECK.txt": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"docs/i18n/SHARED_WIDGET_LOCALISATION.md": "3febd17654c56c30f15da5cd52dc2742fb6bd26cab08d16f0d51b7d8e8cb5844"
|
||||
},
|
||||
"export": {
|
||||
"job-tracker-ui/out/404.html": "4ae9ef34461000f4a03bafb9cdeb1bbcc0867d3aa30bb89b27488070075374de",
|
||||
"job-tracker-ui/out/__next.__PAGE__.txt": "5199837e56cb0008e446034ab4c9cd9f8098a43543f3325d1a5569f322956a1e",
|
||||
"job-tracker-ui/out/__next._full.txt": "a76c71f64a3c36a6677d03ed67f708d5ad15546020dbe23623128034f481df88",
|
||||
"job-tracker-ui/out/__next._tree.txt": "424e23705aaf521bf96b4135fbaed0ea31a95d47ec741646e6a4c2561582c864",
|
||||
"job-tracker-ui/out/_next/static/chunks/0--vhwu1kmht5.js": "426fae50ff0485fb6af8e28a7d1751dfaefcb6118a24dab39b3a7099d38c18dd",
|
||||
"job-tracker-ui/out/_next/static/chunks/0-_aq6ipzcshj.js": "39f90c215bf52aef6274ed3dcc0f8af32e21a37fe8845b3bca0d6ea60da6a8c2",
|
||||
"job-tracker-ui/out/_next/static/chunks/00sdty8f_wo6_.js": "047077072852a0211c228c75d5e29836ba970771382ba0da4bac9fdd0bfac29f",
|
||||
"job-tracker-ui/out/_next/static/chunks/02pclekj6sxrn.js": "8de8b7bb4d26955b3f334c338dc6c2cdef52b134b6be2396e9c5cf85c3657448",
|
||||
"job-tracker-ui/out/_next/static/chunks/05rgc5zsm9p5i.js": "1da7305ab9d8e95795327cce11a16db4c56d90429d7e1dea4c4088c085f20d69",
|
||||
"job-tracker-ui/out/_next/static/chunks/0afg9bl7a8pj5.js": "bd0cec651950d5007f84273af5be8d8255806da4db54238f5c512442c7449459",
|
||||
"job-tracker-ui/out/_next/static/chunks/0ah1fzqmie05a.js": "5c65505a7dcbac63ac71d254e619a4c800943bfb4fa16cd40c10cdbe7e9b6e31",
|
||||
"job-tracker-ui/out/_next/static/chunks/0b3nrgli_w65x.js": "bf23e1a05a97de3a950e76eb206b2fbbe9003460891ecd5ab091155aa385badc",
|
||||
"job-tracker-ui/out/_next/static/chunks/0bdt7ln111t48.js": "6184b1a61f22e2a640c17941634fdc75678ce93d142848d9f07f163e0d1fd201",
|
||||
"job-tracker-ui/out/_next/static/chunks/0cz1d0mv5g_q7.js": "0973c1d64c88adc8e3c950410cb58b288f72118d5965b78049438deb8f2f9683",
|
||||
"job-tracker-ui/out/_next/static/chunks/0og1crk78cn4a.js": "aa5031605cb2f46a612e94d9d71473f48a71aa4a5acfe8fe5f2dfc66d951ab40",
|
||||
"job-tracker-ui/out/_next/static/chunks/0pvbhqkwp15b6.js": "f210cc1a8c203de6008b6137c0324afabb33f233c1ab56800fe9e6c963c0c34a",
|
||||
"job-tracker-ui/out/_next/static/chunks/0q20g9o8x-k8z.js": "3d4d9086985419aa8866b032158196c774acb8bf318f3c8245508c8daa9c5148",
|
||||
"job-tracker-ui/out/_next/static/chunks/0q_pwu9jxv4-d.js": "42a43b3d7245a413c7c29b4cbe87823037a6dbc637e2e282c92405470e0f575d",
|
||||
"job-tracker-ui/out/_next/static/chunks/0qxm1h9uqfgpa.js": "a5af3192c76f3b8dac5c17afbe90d96a5c7652810ce69b7f39fbcf1f1231fd8c",
|
||||
"job-tracker-ui/out/_next/static/chunks/0ta69108309yl.js": "07b8069d13ddaf7aaa24daf1070144a2e98b444ca162b628b8bfb8e1068d2967",
|
||||
"job-tracker-ui/out/_next/static/chunks/0vo4_3wcjs1gy.js": "5e4d305fc346f9ecf48328ab0416397d8bd7c100f0de99dea16d2a1463b386a9",
|
||||
"job-tracker-ui/out/_next/static/chunks/0y95onyb03k05.js": "2e60db02cc316f7a4bd3debd020fe01f403394a1636efb4d02114f1b6f5a3879",
|
||||
"job-tracker-ui/out/_next/static/chunks/0zep-wknuuxm3.js": "cc13d0dc908a4b047a165a50a226b787ee7707135b3f2c5894aab8cbd618a29c",
|
||||
"job-tracker-ui/out/_next/static/chunks/1-8ykqf0n88k2.js": "eb208124ec838cb9a9ae366745bd81fba1c35eeceac128c567bbb7977ebb6a2e",
|
||||
"job-tracker-ui/out/_next/static/chunks/10qxrc5f9nore.js": "512bfc44077703fa4e03e15ca48acf3501231c5e2cb9bf7beb2ec30224fe287b",
|
||||
"job-tracker-ui/out/_next/static/chunks/1435in_k_-dhc.js": "4757476512d5c4dd25f9264a18b304ed4824b23aff1c09e134fcbff21d9c36b6",
|
||||
"job-tracker-ui/out/_next/static/chunks/145oicobmjvm7.js": "d6bbbdeed1381652dc7412e5ce673a077579ecd5cee8934cb6b533c814098764",
|
||||
"job-tracker-ui/out/_next/static/chunks/14e7ovj0s3elm.js": "070567dd4d23fb9fa0b9ba132185a697af6578045d43b2b1c7bbb2a1594d935d",
|
||||
"job-tracker-ui/out/_next/static/chunks/15saa2mllmdp7.js": "6664972f61e1669d2ca1ed9af467df87d316efeadf59496ce8c68d8c84fd7512",
|
||||
"job-tracker-ui/out/_next/static/chunks/16lfece6cnlln.js": "716363ba044f30b0e70440756b4e5eafa2d25f2e1628e855e3bc4ab9eabee3d3",
|
||||
"job-tracker-ui/out/_next/static/chunks/188aj_hr_p4eq.js": "f10e4af24bebfb8b9e7306a5688ef45f07f280c920dc01815ac578fbe18e2182",
|
||||
"job-tracker-ui/out/_next/static/chunks/1avt7t-z_q80r.js": "8cbd919d971eaf46e508f9e6b073a9183a29457c3c42c9566ec74b018894c061",
|
||||
"job-tracker-ui/out/_next/static/chunks/1ke8pzecwofrg.css": "32e9ab963ebadebcbe2c68dffb24cfbfc8cc24255ad91b48b7941fc777bf7439",
|
||||
"job-tracker-ui/out/_next/static/chunks/1req80b9jj38r.js": "eee4d2e3789e1215195dba99ad0f09d34f8c83da848322b76054722233e9dae3",
|
||||
"job-tracker-ui/out/_next/static/chunks/1svx1qnrof8xa.js": "111c502a1ca939f7bf971ed1b3e3cda011b130c313a7f7df742ae4b1e14486ae",
|
||||
"job-tracker-ui/out/_next/static/chunks/1w3q8yrcjn2jk.js": "365200e241ee9290e93d7c2fdba169f2b0a8e774541e3cbf3f6f2781110fa644",
|
||||
"job-tracker-ui/out/_next/static/chunks/1xn023_28rgzj.js": "4f7f2108d030a48d039930736c92a55710975dddf419fe673f84d92899b1f575",
|
||||
"job-tracker-ui/out/_next/static/chunks/1xwc-b795syag.css": "f73c002233f931ca14d0ae58815c47ca9f2659f25b1547a6d1fdca12a2a00b3f",
|
||||
"job-tracker-ui/out/_next/static/chunks/22wx8--1b9tnq.js": "3f7d8e762371262c6a740b4dac21725b424847319afac46055e97074a99ff5f5",
|
||||
"job-tracker-ui/out/_next/static/chunks/274f8aifi_wup.js": "bc5bc5617b4acbbbb1c7966322c508bb5554024d78e71e523e27f7f5bba5a8ab",
|
||||
"job-tracker-ui/out/_next/static/chunks/29jdblthf0w7a.js": "e84b4f7c225d58099aa89999544f7318cb23c0c71f2385c31b3c9181a62ab7f0",
|
||||
"job-tracker-ui/out/_next/static/chunks/2edynwqicn6ym.js": "c694af15bb117955e6f7f0962f47495b2be017dfdea93b6d4ede4d5e4fcd7efd",
|
||||
"job-tracker-ui/out/_next/static/chunks/2ha8nlh4rv92e.js": "5cb4b4cee708f35ed54ef6289269fa866afbaa64fd47bf9275ff691664d3132e",
|
||||
"job-tracker-ui/out/_next/static/chunks/2php_9zkhprrb.js": "4f91e63b1181693e7a3b269b1b24004d9abee13413b8396a916799b8c01620e8",
|
||||
"job-tracker-ui/out/_next/static/chunks/2pllop_q35dkw.js": "21c9a7c53763010317a2d09460066017e1fd192691e6a0bd83ed20ea6e1fe9dd",
|
||||
"job-tracker-ui/out/_next/static/chunks/2s2gjr6ro25dj.js": "7489e2ac285a05b563c2bcb4eaf9274bf930f2a7385f17d6d5e6850064b88b10",
|
||||
"job-tracker-ui/out/_next/static/chunks/2sj7ufu_6n9af.js": "69d7471c01b8001d52abc848910a8c35457dac3aaa4ce66eae2a03ca29ad623b",
|
||||
"job-tracker-ui/out/_next/static/chunks/30-q9iimktiql.js": "db89d5da1f101216d7f99e9518dc7f5ed84f8b40ac84a6ea55f73c01bf1aca1b",
|
||||
"job-tracker-ui/out/_next/static/chunks/315n7snxk3fgw.js": "1993429aafa0753d5e9fd1ca63a4f6079ce7f7f37faa44716191f59c972c4d41",
|
||||
"job-tracker-ui/out/_next/static/chunks/33at73n-mzpir.js": "1605cc3311cc6ca3b2f44b2e0217fe5441a2799fa32b0b0c94d7634f4861ac83",
|
||||
"job-tracker-ui/out/_next/static/chunks/357yqeklh7414.js": "0192ab7198ebbe299d34a934c504dd4b562d1cccebb6e9d4c5163930c881b14c",
|
||||
"job-tracker-ui/out/_next/static/chunks/35pq4ixaltkev.js": "f1e9d53e2481de01d7b04aa938397c2545b7d7dc42ce3d0ac5cd3f1141bda182",
|
||||
"job-tracker-ui/out/_next/static/chunks/3_4dnl1l3809g.js": "50288c2864a9e8c7ef25c93762edb86e4e617778737b5b5a028c53c5b93d3b70",
|
||||
"job-tracker-ui/out/_next/static/chunks/3bqn9b34na0b9.js": "f1b8ebcc1b22251c33c9f3a5d11c1f893cad2da2e8744a441e790f7347aa9e73",
|
||||
"job-tracker-ui/out/_next/static/chunks/3gkylew_qn7cw.js": "7e6c74c81be0c41ab433e36d65b914f62c48f332922e27f7cc953476f4dd78cb",
|
||||
"job-tracker-ui/out/_next/static/chunks/3i8h6eaa02hty.js": "8b0f0c73a472565f2f1317d33e0753984103d5a2fe7b0efd902fc180124664c9",
|
||||
"job-tracker-ui/out/_next/static/chunks/3la4obitihzpv.js": "9a5a57b46db389b98f1fd5baa86eba1a360300dae9d1ff3ffeae7bc3378135b9",
|
||||
"job-tracker-ui/out/_next/static/chunks/3owtzqjyid5zf.js": "5f9cbb7c0cddd0c781137b970d5a4fceb386dbb259c8121dd54b33d76160d9ea",
|
||||
"job-tracker-ui/out/_next/static/chunks/3q4v10rrqy40n.js": "d87ff7b7a0f07d0d92eab3876481eb686a12d9c43d8b92cbe406aefa227a11c1",
|
||||
"job-tracker-ui/out/_next/static/chunks/3xbcgmkebja05.js": "bb1e98db2657a4b067676ead2ea26172478a79c1b384a9f9fe6588e1481d33ee",
|
||||
"job-tracker-ui/out/_next/static/chunks/turbopack-25fzg9ay_1ss-.js": "c40f39e993a30c96d6247bb3a7b581538bb046efe8ef8ec07bea3ba32291750f",
|
||||
"job-tracker-ui/out/_next/static/SRhzLufk4DPQ7WreBxm3P/_buildManifest.js": "9476e0afd3f9da68a64e6ec58631191fd3eaca62c9f5a377e7517fe9a89e59ea",
|
||||
"job-tracker-ui/out/_next/static/SRhzLufk4DPQ7WreBxm3P/_clientMiddlewareManifest.js": "5483e3295dc35dfe29ea932efc85341c916f10ff78ff5b0e965e003710893a4a",
|
||||
"job-tracker-ui/out/_next/static/SRhzLufk4DPQ7WreBxm3P/_ssgManifest.js": "678f6ce2cb80b1fe72fc67e7412be6e2ab6ada083111b64f7c40d35e3cba5e00",
|
||||
"job-tracker-ui/out/_not-found/__next._full.txt": "4f462f81bf53f3a23cabbc7b5a21bdacef0bf52e97ab9a8e16759a48de5ca183",
|
||||
"job-tracker-ui/out/_not-found/__next._not-found/__PAGE__.txt": "df0ac445303b7cf8af0e2f127ab0cdce7920953cca6e0cf7138986d22fc6ac64",
|
||||
"job-tracker-ui/out/_not-found/__next._tree.txt": "94b338bfbc252b36b4fbd58de80824a958d9f942dd44348667dcaa1c6b53af28",
|
||||
"job-tracker-ui/out/_not-found.html": "4ae9ef34461000f4a03bafb9cdeb1bbcc0867d3aa30bb89b27488070075374de",
|
||||
"job-tracker-ui/out/_not-found.txt": "4f462f81bf53f3a23cabbc7b5a21bdacef0bf52e97ab9a8e16759a48de5ca183",
|
||||
"job-tracker-ui/out/favicon.ico": "8d4923e2c487805ea9f852a685b2cf0fb10512ded8290d2a5c37d1cc8fd0702a",
|
||||
"job-tracker-ui/out/favicon.svg": "63ecf8f37f8bb146ecfae3917187c6b692d4e801641e8a314486a4007912f3a3",
|
||||
"job-tracker-ui/out/index.html": "e020a26d1d7eb7bbadd2d5b0b848374d871f65d7be8c718e8908b44b92d536e6",
|
||||
"job-tracker-ui/out/index.txt": "a76c71f64a3c36a6677d03ed67f708d5ad15546020dbe23623128034f481df88",
|
||||
"job-tracker-ui/out/logo192.png": "bc652031597fabd19b9f14e22a71f809490d218037521b3b64d013418c1390b4",
|
||||
"job-tracker-ui/out/logo512.png": "5129e9bc1ba812b711fd9a646d3a38a906d365a26ee685df183b8752458944d4",
|
||||
"job-tracker-ui/out/manifest.json": "2667ce63c2e0835b7007239816a5597639321d333da396a78638dfa9e8a7c935",
|
||||
"job-tracker-ui/out/mockups/dashboard.svg": "318be3adb1324c26eb30f05572a29528a3e38331c6a604652eef75b54f8c29dc",
|
||||
"job-tracker-ui/out/mockups/pipeline.svg": "db2ef41faabeb90e7ce85413e168581686c54535d970fc7d8deda3888a479de4",
|
||||
"job-tracker-ui/out/mockups/workspace.svg": "9bbab22349147c7b01d6e18c93c622a6f8aed6dedaf23715189ab54d60e1ddbd",
|
||||
"job-tracker-ui/out/robots.txt": "e5ab0d231eeb01b4a982d1c79a6729cac9797ad15a69247e4f28ba6afc149b4c"
|
||||
}
|
||||
}
|
||||
@@ -1,516 +0,0 @@
|
||||
{
|
||||
"journeys": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"width": 1440,
|
||||
"touch": false,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 22,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"width": 390,
|
||||
"touch": true,
|
||||
"theme": "dark",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 22,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"width": 1440,
|
||||
"touch": false,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"width": 390,
|
||||
"touch": true,
|
||||
"theme": "dark",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"width": 1440,
|
||||
"touch": false,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"width": 390,
|
||||
"touch": true,
|
||||
"theme": "dark",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
}
|
||||
],
|
||||
"captures": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"writes": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"unavailableReads": [],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
]
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
Checking America-Los_Angeles-en
|
||||
Checking America-Los_Angeles-nb
|
||||
Checking Europe-Oslo-en
|
||||
Checking Europe-Oslo-nb
|
||||
Checking Pacific-Kiritimati-en
|
||||
Checking Pacific-Kiritimati-nb
|
||||
PASS 6 real-widget journeys, 12 axe captures, 12 intercepted fixture writes
|
||||
@@ -1,235 +0,0 @@
|
||||
[
|
||||
{
|
||||
tag: 'INPUT',
|
||||
role: 'combobox',
|
||||
label: null,
|
||||
value: 'Synthetic school',
|
||||
text: ''
|
||||
},
|
||||
{ tag: 'BUTTON', role: null, label: 'Clear', value: '', text: '' },
|
||||
{ tag: 'BUTTON', role: null, label: 'Open', value: '', text: '' },
|
||||
{ tag: 'INPUT', role: null, label: null, value: 'Teacher', text: '' },
|
||||
{
|
||||
tag: 'DIV',
|
||||
role: 'group',
|
||||
label: null,
|
||||
value: undefined,
|
||||
text: '11/23/2026Søkt dato'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Month',
|
||||
value: undefined,
|
||||
text: '11'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Day',
|
||||
value: undefined,
|
||||
text: '23'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Year',
|
||||
value: undefined,
|
||||
text: '2026'
|
||||
},
|
||||
{
|
||||
tag: 'BUTTON',
|
||||
role: null,
|
||||
label: 'Choose date, selected date is Nov 23, 2026',
|
||||
value: '',
|
||||
text: ''
|
||||
},
|
||||
{
|
||||
tag: 'INPUT',
|
||||
role: null,
|
||||
label: null,
|
||||
value: '11/23/2026',
|
||||
text: ''
|
||||
},
|
||||
{ tag: 'INPUT', role: null, label: null, value: '', text: '' },
|
||||
{ tag: 'INPUT', role: null, label: null, value: 'Applied', text: '' },
|
||||
{
|
||||
tag: 'DIV',
|
||||
role: 'group',
|
||||
label: null,
|
||||
value: undefined,
|
||||
text: '11/11/2026Status endret'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Month',
|
||||
value: undefined,
|
||||
text: '11'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Day',
|
||||
value: undefined,
|
||||
text: '11'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Year',
|
||||
value: undefined,
|
||||
text: '2026'
|
||||
},
|
||||
{
|
||||
tag: 'BUTTON',
|
||||
role: null,
|
||||
label: 'Choose date, selected date is Nov 11, 2026',
|
||||
value: '',
|
||||
text: ''
|
||||
},
|
||||
{
|
||||
tag: 'INPUT',
|
||||
role: null,
|
||||
label: null,
|
||||
value: '11/11/2026',
|
||||
text: ''
|
||||
},
|
||||
{ tag: 'INPUT', role: null, label: null, value: 'on', text: '' },
|
||||
{
|
||||
tag: 'DIV',
|
||||
role: 'group',
|
||||
label: null,
|
||||
value: undefined,
|
||||
text: '11/23/2026Svar mottatt dato'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Month',
|
||||
value: undefined,
|
||||
text: '11'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Day',
|
||||
value: undefined,
|
||||
text: '23'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Year',
|
||||
value: undefined,
|
||||
text: '2026'
|
||||
},
|
||||
{
|
||||
tag: 'BUTTON',
|
||||
role: null,
|
||||
label: 'Choose date, selected date is Nov 23, 2026',
|
||||
value: '',
|
||||
text: ''
|
||||
},
|
||||
{
|
||||
tag: 'INPUT',
|
||||
role: null,
|
||||
label: null,
|
||||
value: '11/23/2026',
|
||||
text: ''
|
||||
},
|
||||
{ tag: 'INPUT', role: null, label: null, value: '', text: '' },
|
||||
{
|
||||
tag: 'DIV',
|
||||
role: 'group',
|
||||
label: null,
|
||||
value: undefined,
|
||||
text: '11/23/2026Følg opp den'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Month',
|
||||
value: undefined,
|
||||
text: '11'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Day',
|
||||
value: undefined,
|
||||
text: '23'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Year',
|
||||
value: undefined,
|
||||
text: '2026'
|
||||
},
|
||||
{
|
||||
tag: 'BUTTON',
|
||||
role: null,
|
||||
label: 'Choose date, selected date is Nov 23, 2026',
|
||||
value: '',
|
||||
text: ''
|
||||
},
|
||||
{
|
||||
tag: 'INPUT',
|
||||
role: null,
|
||||
label: null,
|
||||
value: '11/23/2026',
|
||||
text: ''
|
||||
},
|
||||
{ tag: 'INPUT', role: null, label: null, value: '', text: '' },
|
||||
{ tag: 'INPUT', role: null, label: null, value: '', text: '' },
|
||||
{ tag: 'INPUT', role: null, label: null, value: '', text: '' },
|
||||
{ tag: 'INPUT', role: null, label: null, value: '', text: '' },
|
||||
{ tag: 'INPUT', role: null, label: null, value: '', text: '' },
|
||||
{
|
||||
tag: 'DIV',
|
||||
role: 'group',
|
||||
label: null,
|
||||
value: undefined,
|
||||
text: '11/23/2026Frist'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Month',
|
||||
value: undefined,
|
||||
text: '11'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Day',
|
||||
value: undefined,
|
||||
text: '23'
|
||||
},
|
||||
{
|
||||
tag: 'SPAN',
|
||||
role: 'spinbutton',
|
||||
label: 'Year',
|
||||
value: undefined,
|
||||
text: '2026'
|
||||
},
|
||||
{
|
||||
tag: 'BUTTON',
|
||||
role: null,
|
||||
label: 'Choose date, selected date is Nov 23, 2026',
|
||||
value: '',
|
||||
text: ''
|
||||
},
|
||||
{
|
||||
tag: 'INPUT',
|
||||
role: null,
|
||||
label: null,
|
||||
value: '11/23/2026',
|
||||
text: ''
|
||||
},
|
||||
{ tag: 'INPUT', role: null, label: null, value: '', text: '' },
|
||||
{ tag: 'INPUT', role: 'combobox', label: null, value: '', text: '' },
|
||||
{ tag: 'BUTTON', role: null, label: null, value: '', text: 'Avbryt' },
|
||||
{ tag: 'BUTTON', role: null, label: null, value: '', text: 'Lagre' }
|
||||
]
|
||||
@@ -1,552 +0,0 @@
|
||||
{
|
||||
"journeys": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"width": 1440,
|
||||
"touch": false,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 22,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"width": 390,
|
||||
"touch": true,
|
||||
"theme": "dark",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 22,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"width": 1440,
|
||||
"touch": false,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"width": 390,
|
||||
"touch": true,
|
||||
"theme": "dark",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"width": 1440,
|
||||
"touch": false,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"width": 390,
|
||||
"touch": true,
|
||||
"theme": "dark",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
}
|
||||
],
|
||||
"captures": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"writes": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"unavailableReads": [],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
]
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
Checking America-Los_Angeles-en
|
||||
Checking America-Los_Angeles-nb
|
||||
Checking Europe-Oslo-en
|
||||
Checking Europe-Oslo-nb
|
||||
Checking Pacific-Kiritimati-en
|
||||
Checking Pacific-Kiritimati-nb
|
||||
PASS 6 real-widget journeys, 18 axe captures, 12 intercepted fixture writes
|
||||
@@ -1,23 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 build
|
||||
> node --max-old-space-size=4096 ./node_modules/next/dist/bin/next build
|
||||
|
||||
▲ Next.js 16.4.1 (Turbopack)
|
||||
✓ Running next.config.js took 24ms
|
||||
|
||||
Creating an optimized production build ...
|
||||
✓ Compiled successfully in 392ms
|
||||
Running TypeScript ...
|
||||
Finished TypeScript in 4.6s ...
|
||||
Collecting page data using 4 workers ...
|
||||
Generating static pages using 4 workers (0/3) ...
|
||||
✓ Generating static pages using 4 workers (3/3) in 804ms
|
||||
Finalizing page optimization ...
|
||||
|
||||
Route (app)
|
||||
┌ ○ /
|
||||
└ ○ /_not-found
|
||||
|
||||
|
||||
○ (Static) prerendered as static content
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 build
|
||||
> node --max-old-space-size=4096 ./node_modules/next/dist/bin/next build
|
||||
|
||||
▲ Next.js 16.4.1 (Turbopack)
|
||||
✓ Running next.config.js took 26ms
|
||||
|
||||
Creating an optimized production build ...
|
||||
✓ Compiled successfully in 975ms
|
||||
Running TypeScript ...
|
||||
src/date-picker-localisation.test.tsx(24,56): error TS2769: No overload matches this call.
|
||||
Overload 1 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
Overload 2 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
src/date-picker-localisation.test.tsx(25,58): error TS2769: No overload matches this call.
|
||||
Overload 1 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
Overload 2 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
src/date-picker-localisation.test.tsx(26,55): error TS2769: No overload matches this call.
|
||||
Overload 1 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
Overload 2 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
src/date-picker-localisation.test.tsx(35,56): error TS2769: No overload matches this call.
|
||||
Overload 1 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
Overload 2 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
src/date-picker-localisation.test.tsx(36,64): error TS2769: No overload matches this call.
|
||||
Overload 1 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
Overload 2 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
src/date-picker-localisation.test.tsx(37,56): error TS2769: No overload matches this call.
|
||||
Overload 1 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
Overload 2 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
src/date-picker-localisation.test.tsx(39,65): error TS2769: No overload matches this call.
|
||||
Overload 1 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
Overload 2 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
src/date-picker-localisation.test.tsx(40,56): error TS2769: No overload matches this call.
|
||||
Overload 1 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
Overload 2 of 2, '(role: ByRoleMatcher, options?: ByRoleOptions | undefined): HTMLElement', gave the following error.
|
||||
Object literal may only specify known properties, and 'exact' does not exist in type 'ByRoleOptions'.
|
||||
Failed to type check.
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"journeys": [],
|
||||
"captures": [],
|
||||
"writes": [],
|
||||
"errors": [],
|
||||
"unavailableReads": [],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com"
|
||||
]
|
||||
}
|
||||
@@ -1,136 +0,0 @@
|
||||
Checking America-Los_Angeles-en
|
||||
node:internal/modules/run_main:107
|
||||
triggerUncaughtException(
|
||||
^
|
||||
|
||||
ExpectError: expect(locator).toHaveText(expected) failed
|
||||
|
||||
Locator: getByRole('dialog', { name: 'Edit job', exact: true }).getByRole('group', { name: 'Frist', exact: true }).getByRole('spinbutton', { name: 'Dag', exact: true })
|
||||
Expected: "23"
|
||||
Timeout: 5000ms
|
||||
Error: element(s) not found
|
||||
|
||||
Call log:
|
||||
- Expect "to.have.text" with timeout 5000ms
|
||||
- waiting for getByRole('dialog', { name: 'Edit job', exact: true }).getByRole('group', { name: 'Frist', exact: true }).getByRole('spinbutton', { name: 'Dag', exact: true })
|
||||
|
||||
at captureRawStack (C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\node_modules\playwright-core\lib\coreBundle.js:9681:17)
|
||||
at callMatcherAsStep (C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\node_modules\playwright\lib\matchers\expect.js:13310:57)
|
||||
at Object.toHaveText (C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\node_modules\playwright\lib\matchers\expect.js:13300:23)
|
||||
at assertDay (C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\scripts\verify-job-date-widgets.mjs:56:105)
|
||||
at C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\scripts\verify-job-date-widgets.mjs:84:11 {
|
||||
matcherResult: {
|
||||
name: 'toHaveText',
|
||||
expected: '23',
|
||||
message: 'expect(locator).toHaveText(expected) failed\n' +
|
||||
'\n' +
|
||||
"Locator: getByRole('dialog', { name: 'Edit job', exact: true }).getByRole('group', { name: 'Frist', exact: true }).getByRole('spinbutton', { name: 'Dag', exact: true })\n" +
|
||||
'Expected: "23"\n' +
|
||||
'Timeout: 5000ms\n' +
|
||||
'Error: element(s) not found\n' +
|
||||
'\n' +
|
||||
'Call log:\n' +
|
||||
' - Expect "to.have.text" with timeout 5000ms\n' +
|
||||
" - waiting for getByRole('dialog', { name: 'Edit job', exact: true }).getByRole('group', { name: 'Frist', exact: true }).getByRole('spinbutton', { name: 'Dag', exact: true })\n",
|
||||
pass: false,
|
||||
actual: undefined,
|
||||
log: [
|
||||
' - Expect "to.have.text" with timeout 5000ms',
|
||||
" - waiting for getByRole('dialog', { name: 'Edit job', exact: true }).getByRole('group', { name: 'Frist', exact: true }).getByRole('spinbutton', { name: 'Dag', exact: true })"
|
||||
],
|
||||
timeout: 5000,
|
||||
ariaSnapshot: '- dialog "Rediger jobb":\n' +
|
||||
' - heading "Rediger jobb" [level=2]\n' +
|
||||
' - paragraph: Oppdater jobbdetaljer, status i tidslinjen, dokumenter og notater fra ett redigeringsområde.\n' +
|
||||
' - text: Søknadsdetaljer Selskap\n' +
|
||||
' - combobox "Selskap": Synthetic school\n' +
|
||||
' - button "Open"\n' +
|
||||
' - text: Stillingstittel\n' +
|
||||
' - textbox "Stillingstittel": Retain teacher draft\n' +
|
||||
' - text: Søkt dato\n' +
|
||||
' - group "Søkt dato":\n' +
|
||||
' - spinbutton "Dag": "23"\n' +
|
||||
' - text: .\n' +
|
||||
' - spinbutton "Måned": "11"\n' +
|
||||
' - text: .\n' +
|
||||
' - spinbutton "År": "2026"\n' +
|
||||
' - button "Velg dato, valgt dato er 23. nov. 2026"\n' +
|
||||
' - text: Jobb-URL\n' +
|
||||
' - textbox "Jobb-URL"\n' +
|
||||
' - text: Statusoppdatering Gjeldende status\n' +
|
||||
' - combobox "Gjeldende status Søkt": Søkt\n' +
|
||||
' - text: Status endret\n' +
|
||||
' - group "Status endret":\n' +
|
||||
' - spinbutton "Dag": "23"\n' +
|
||||
' - text: .\n' +
|
||||
' - spinbutton "Måned": "11"\n' +
|
||||
' - text: .\n' +
|
||||
' - spinbutton "År": "2026"\n' +
|
||||
' - button "Velg dato, valgt dato er 23. nov. 2026"\n' +
|
||||
' - paragraph: Brukes bare når du endrer statusen.\n' +
|
||||
' - checkbox "Svar mottatt" [checked]\n' +
|
||||
' - text: Svar mottatt Svar mottatt dato\n' +
|
||||
' - group "Svar mottatt dato":\n' +
|
||||
' - spinbutton "Dag": "23"\n' +
|
||||
' - text: .\n' +
|
||||
' - spinbutton "Måned": "11"\n' +
|
||||
' - text: .\n' +
|
||||
' - spinbutton "År": "2026"\n' +
|
||||
' - button "Velg dato, valgt dato er 23. nov. 2026"\n' +
|
||||
' - text: Neste handling\n' +
|
||||
' - textbox "Neste handling"\n' +
|
||||
' - text: Følg opp den\n' +
|
||||
' - group "Følg opp den":\n' +
|
||||
' - spinbutton "Dag": "23"\n' +
|
||||
' - text: .\n' +
|
||||
' - spinbutton "Måned": "11"\n' +
|
||||
' - text: .\n' +
|
||||
' - spinbutton "År": "2026"\n' +
|
||||
' - button "Velg dato, valgt dato er 23. nov. 2026"\n' +
|
||||
' - text: Rolledetaljer Sted\n' +
|
||||
' - textbox "Sted"\n' +
|
||||
' - text: Lønn\n' +
|
||||
' - textbox "Lønn"\n' +
|
||||
' - text: Lønn fra\n' +
|
||||
' - spinbutton "Lønn fra"\n' +
|
||||
' - text: Lønn til\n' +
|
||||
' - spinbutton "Lønn til"\n' +
|
||||
' - text: Valuta\n' +
|
||||
' - textbox "Valuta"\n' +
|
||||
' - text: Per\n' +
|
||||
' - combobox "Per":\n' +
|
||||
' - option [selected]\n' +
|
||||
' - option "År"\n' +
|
||||
' - option "Måned"\n' +
|
||||
' - option "Time"\n' +
|
||||
' - text: Frist\n' +
|
||||
' - group "Frist":\n' +
|
||||
' - spinbutton "Dag": "23"\n' +
|
||||
' - text: .\n' +
|
||||
' - spinbutton "Måned": "11"\n' +
|
||||
' - text: .\n' +
|
||||
' - spinbutton "År": "2026"\n' +
|
||||
' - button "Velg dato, valgt dato er 23. nov. 2026"\n' +
|
||||
' - text: Språk i beskrivelse\n' +
|
||||
' - textbox "Språk i beskrivelse"\n' +
|
||||
' - text: Etiketter\n' +
|
||||
' - combobox "Etiketter"\n' +
|
||||
' - text: Notater\n' +
|
||||
' - textbox "Notater"\n' +
|
||||
' - paragraph: 0 tegn\n' +
|
||||
' - text: Beskrivelse (original)\n' +
|
||||
' - textbox "Beskrivelse (original)"\n' +
|
||||
' - paragraph: 0 tegn\n' +
|
||||
' - text: Oversatt beskrivelse\n' +
|
||||
' - textbox "Oversatt beskrivelse"\n' +
|
||||
' - paragraph: 0 tegn\n' +
|
||||
' - text: Søknadsbrev\n' +
|
||||
' - textbox "Søknadsbrev"\n' +
|
||||
' - paragraph: 0 tegn\n' +
|
||||
' - text: Vedleggssjekkliste CV mangler Søknadsbrev mangler Portefølje valgfri\n' +
|
||||
' - button "Avbryt"\n' +
|
||||
' - button "Lagre"'
|
||||
}
|
||||
}
|
||||
|
||||
Node.js v24.19.0
|
||||
@@ -1,10 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 test
|
||||
> jest --runInBand date-picker-localisation.test.tsx edit-job-revision.test.tsx job-date-picker-calendar.test.tsx theme-state.test.tsx
|
||||
|
||||
|
||||
Test Suites: 4 passed, 4 total
|
||||
Tests: 20 passed, 20 total
|
||||
Snapshots: 0 total
|
||||
Time: 12.354 s, estimated 16 s
|
||||
Ran all test suites matching date-picker-localisation.test.tsx|edit-job-revision.test.tsx|job-date-picker-calendar.test.tsx|theme-state.test.tsx.
|
||||
@@ -1,4 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 lint
|
||||
> eslint . --max-warnings=0
|
||||
|
||||
@@ -1,180 +0,0 @@
|
||||
{
|
||||
"journeys": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"width": 1440,
|
||||
"touch": false,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 22,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"width": 390,
|
||||
"touch": true,
|
||||
"theme": "dark",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 22,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
}
|
||||
],
|
||||
"captures": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"writes": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"unavailableReads": [],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
]
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
Checking America-Los_Angeles-en
|
||||
Checking America-Los_Angeles-nb
|
||||
PASS 2 real-widget journeys, 4 axe captures, 4 intercepted fixture writes
|
||||
@@ -1,598 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 test
|
||||
> jest --runInBand date-picker-localisation.test.tsx
|
||||
|
||||
FAIL src/date-picker-localisation.test.tsx
|
||||
● Bokmål localizes date sections, calendar controls and displayed format
|
||||
|
||||
TestingLibraryElementError: Unable to find an accessible element with the role "spinbutton" and name "Dag"
|
||||
|
||||
Here are the accessible roles:
|
||||
|
||||
textbox:
|
||||
|
||||
Name "Unsaved title":
|
||||
<input
|
||||
aria-label="Unsaved title"
|
||||
value="Teacher draft"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
button:
|
||||
|
||||
Name "Bokmål":
|
||||
<button />
|
||||
|
||||
Name "English":
|
||||
<button />
|
||||
|
||||
Name "Choose date, selected date is Nov 23, 2026":
|
||||
<button
|
||||
aria-label="Choose date, selected date is Nov 23, 2026"
|
||||
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-edgeEnd MuiIconButton-sizeMedium css-1ysp02-MuiButtonBase-root-MuiIconButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
group:
|
||||
|
||||
Name "Deadline":
|
||||
<div
|
||||
aria-invalid="false"
|
||||
aria-labelledby="_r_0_-label"
|
||||
class="MuiPickersInputBase-root MuiPickersOutlinedInput-root MuiPickersInputBase-colorPrimary MuiPickersInputBase-adornedEnd css-189if4m-MuiPickersInputBase-root-MuiPickersOutlinedInput-root"
|
||||
role="group"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
spinbutton:
|
||||
|
||||
Name "Month":
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Month"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="12"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="11"
|
||||
aria-valuetext="November"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="0"
|
||||
/>
|
||||
|
||||
Name "Day":
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Day"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="30"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="23"
|
||||
aria-valuetext="23rd"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
/>
|
||||
|
||||
Name "Year":
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Year"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="9999"
|
||||
aria-valuemin="0"
|
||||
aria-valuenow="2026"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
<body>
|
||||
<div>
|
||||
<input
|
||||
aria-label="Unsaved title"
|
||||
value="Teacher draft"
|
||||
/>
|
||||
<button>
|
||||
Bokmål
|
||||
</button>
|
||||
<button>
|
||||
English
|
||||
</button>
|
||||
<div
|
||||
class="MuiFormControl-root MuiPickersTextField-root css-eqc3kq-MuiFormControl-root-MuiPickersTextField-root"
|
||||
>
|
||||
<label
|
||||
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined css-18yassc-MuiFormLabel-root-MuiInputLabel-root"
|
||||
data-shrink="true"
|
||||
for="_r_0_"
|
||||
id="_r_0_-label"
|
||||
>
|
||||
Deadline
|
||||
</label>
|
||||
<div
|
||||
aria-invalid="false"
|
||||
aria-labelledby="_r_0_-label"
|
||||
class="MuiPickersInputBase-root MuiPickersOutlinedInput-root MuiPickersInputBase-colorPrimary MuiPickersInputBase-adornedEnd css-189if4m-MuiPickersInputBase-root-MuiPickersOutlinedInput-root"
|
||||
role="group"
|
||||
>
|
||||
<div
|
||||
class="MuiPickersSectionList-root MuiPickersInputBase-sectionsContainer css-w175m5-MuiPickersSectionList-root-MuiPickersInputBase-sectionsContainer-MuiPickersOutlinedInput-sectionsContainer"
|
||||
contenteditable="false"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersSectionList-section css-joz0rk-MuiPickersSectionList-section-MuiPickersInputBase-section"
|
||||
data-sectionindex="0"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionBefore css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
/>
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Month"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="12"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="11"
|
||||
aria-valuetext="November"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="0"
|
||||
>
|
||||
11
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionAfter css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
>
|
||||
/
|
||||
</span>
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersSectionList-section css-joz0rk-MuiPickersSectionList-section-MuiPickersInputBase-section"
|
||||
data-sectionindex="1"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionBefore css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
/>
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Day"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="30"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="23"
|
||||
aria-valuetext="23rd"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
>
|
||||
23
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionAfter css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
>
|
||||
/
|
||||
</span>
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersSectionList-section css-joz0rk-MuiPickersSectionList-section-MuiPickersInputBase-section"
|
||||
data-sectionindex="2"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionBefore css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
/>
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Year"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="9999"
|
||||
aria-valuemin="0"
|
||||
aria-valuenow="2026"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
>
|
||||
2026
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionAfter css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
class="MuiInputAdornment-root MuiInputAdornment-positionEnd MuiInputAdornment-outlined MuiInputAdornment-sizeMedium css-elo8k2-MuiInputAdornment-root"
|
||||
>
|
||||
<button
|
||||
aria-label="Choose date, selected date is Nov 23, 2026"
|
||||
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-edgeEnd MuiIconButton-sizeMedium css-1ysp02-MuiButtonBase-root-MuiIconButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
<svg
|
||||
aria-hidden="true"
|
||||
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1umw9bq-MuiSvgIcon-root"
|
||||
data-testid="CalendarIcon"
|
||||
focusable="false"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<path
|
||||
d="M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<fieldset
|
||||
aria-hidden="true"
|
||||
class="MuiPickersOutlinedInput-notchedOutline css-lqwr9g-MuiPickersOutlinedInput-notchedOutline"
|
||||
>
|
||||
<legend
|
||||
class="css-kg5swy"
|
||||
>
|
||||
<span
|
||||
class="css-w48gsk"
|
||||
>
|
||||
Deadline
|
||||
</span>
|
||||
</legend>
|
||||
</fieldset>
|
||||
<input
|
||||
aria-hidden="true"
|
||||
class="MuiPickersInputBase-input MuiPickersOutlinedInput-input css-31lcvl-MuiPickersInputBase-input"
|
||||
id="_r_0_"
|
||||
tabindex="-1"
|
||||
value="11/23/2026"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
22 | localStorage.setItem("uiLanguage", "nb");
|
||||
23 | render(<I18nProvider><DateLocalizationProvider><Form /></DateLocalizationProvider></I18nProvider>);
|
||||
> 24 | expect(screen.getByRole("spinbutton", { name: "Dag", exact: true })).toHaveTextContent("23");
|
||||
| ^
|
||||
25 | expect(screen.getByRole("spinbutton", { name: "Måned", exact: true })).toHaveTextContent("11");
|
||||
26 | expect(screen.getByRole("spinbutton", { name: "År", exact: true })).toHaveTextContent("2026");
|
||||
27 | expect(screen.getByRole("button", { name: /^Velg dato, valgt dato er/ })).toBeVisible();
|
||||
|
||||
at Object.getElementError (node_modules/@testing-library/dom/dist/config.js:37:19)
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:76:38
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:52:17
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:95:19
|
||||
at Object.getByRole (src/date-picker-localisation.test.tsx:24:17)
|
||||
|
||||
● live UI language changes retain the selected day and unsaved form draft
|
||||
|
||||
TestingLibraryElementError: Unable to find an accessible element with the role "spinbutton" and name "Dag"
|
||||
|
||||
Here are the accessible roles:
|
||||
|
||||
textbox:
|
||||
|
||||
Name "Unsaved title":
|
||||
<input
|
||||
aria-label="Unsaved title"
|
||||
value="Teacher draft"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
button:
|
||||
|
||||
Name "Bokmål":
|
||||
<button />
|
||||
|
||||
Name "English":
|
||||
<button />
|
||||
|
||||
Name "Choose date, selected date is Nov 23, 2026":
|
||||
<button
|
||||
aria-label="Choose date, selected date is Nov 23, 2026"
|
||||
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-edgeEnd MuiIconButton-sizeMedium css-1ysp02-MuiButtonBase-root-MuiIconButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
group:
|
||||
|
||||
Name "Deadline":
|
||||
<div
|
||||
aria-invalid="false"
|
||||
aria-labelledby="_r_3_-label"
|
||||
class="MuiPickersInputBase-root MuiPickersOutlinedInput-root MuiPickersInputBase-colorPrimary MuiPickersInputBase-adornedEnd css-189if4m-MuiPickersInputBase-root-MuiPickersOutlinedInput-root"
|
||||
role="group"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
spinbutton:
|
||||
|
||||
Name "Month":
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Month"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="12"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="11"
|
||||
aria-valuetext="November"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="0"
|
||||
/>
|
||||
|
||||
Name "Day":
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Day"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="30"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="23"
|
||||
aria-valuetext="23rd"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
/>
|
||||
|
||||
Name "Year":
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Year"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="9999"
|
||||
aria-valuemin="0"
|
||||
aria-valuenow="2026"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
<body>
|
||||
<div>
|
||||
<input
|
||||
aria-label="Unsaved title"
|
||||
value="Teacher draft"
|
||||
/>
|
||||
<button>
|
||||
Bokmål
|
||||
</button>
|
||||
<button>
|
||||
English
|
||||
</button>
|
||||
<div
|
||||
class="MuiFormControl-root MuiPickersTextField-root css-eqc3kq-MuiFormControl-root-MuiPickersTextField-root"
|
||||
>
|
||||
<label
|
||||
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined css-18yassc-MuiFormLabel-root-MuiInputLabel-root"
|
||||
data-shrink="true"
|
||||
for="_r_3_"
|
||||
id="_r_3_-label"
|
||||
>
|
||||
Deadline
|
||||
</label>
|
||||
<div
|
||||
aria-invalid="false"
|
||||
aria-labelledby="_r_3_-label"
|
||||
class="MuiPickersInputBase-root MuiPickersOutlinedInput-root MuiPickersInputBase-colorPrimary MuiPickersInputBase-adornedEnd css-189if4m-MuiPickersInputBase-root-MuiPickersOutlinedInput-root"
|
||||
role="group"
|
||||
>
|
||||
<div
|
||||
class="MuiPickersSectionList-root MuiPickersInputBase-sectionsContainer css-w175m5-MuiPickersSectionList-root-MuiPickersInputBase-sectionsContainer-MuiPickersOutlinedInput-sectionsContainer"
|
||||
contenteditable="false"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersSectionList-section css-joz0rk-MuiPickersSectionList-section-MuiPickersInputBase-section"
|
||||
data-sectionindex="0"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionBefore css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
/>
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Month"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="12"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="11"
|
||||
aria-valuetext="November"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="0"
|
||||
>
|
||||
11
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionAfter css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
>
|
||||
/
|
||||
</span>
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersSectionList-section css-joz0rk-MuiPickersSectionList-section-MuiPickersInputBase-section"
|
||||
data-sectionindex="1"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionBefore css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
/>
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Day"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="30"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="23"
|
||||
aria-valuetext="23rd"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
>
|
||||
23
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionAfter css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
>
|
||||
/
|
||||
</span>
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersSectionList-section css-joz0rk-MuiPickersSectionList-section-MuiPickersInputBase-section"
|
||||
data-sectionindex="2"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionBefore css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
/>
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Year"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="9999"
|
||||
aria-valuemin="0"
|
||||
aria-valuenow="2026"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-1jpopwz-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
>
|
||||
2026
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionAfter css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
class="MuiInputAdornment-root MuiInputAdornment-positionEnd MuiInputAdornment-outlined MuiInputAdornment-sizeMedium css-elo8k2-MuiInputAdornment-root"
|
||||
>
|
||||
<button
|
||||
aria-label="Choose date, selected date is Nov 23, 2026"
|
||||
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-edgeEnd MuiIconButton-sizeMedium css-1ysp02-MuiButtonBase-root-MuiIconButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
<svg
|
||||
aria-hidden="true"
|
||||
class="MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1umw9bq-MuiSvgIcon-root"
|
||||
data-testid="CalendarIcon"
|
||||
focusable="false"
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<path
|
||||
d="M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
<fieldset
|
||||
aria-hidden="true"
|
||||
class="MuiPickersOutlinedInput-notchedOutline css-lqwr9g-MuiPickersOutlinedInput-notchedOutline"
|
||||
>
|
||||
<legend
|
||||
class="css-kg5swy"
|
||||
>
|
||||
<span
|
||||
class="css-w48gsk"
|
||||
>
|
||||
Deadline
|
||||
</span>
|
||||
</legend>
|
||||
</fieldset>
|
||||
<input
|
||||
aria-hidden="true"
|
||||
class="MuiPickersInputBase-input MuiPickersOutlinedInput-input css-31lcvl-MuiPickersInputBase-input"
|
||||
id="_r_3_"
|
||||
tabindex="-1"
|
||||
value="11/23/2026"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
35 | expect(screen.getByRole("spinbutton", { name: "Day", exact: true })).toHaveTextContent("23");
|
||||
36 | fireEvent.click(screen.getByRole("button", { name: "Bokmål", exact: true }));
|
||||
> 37 | expect(screen.getByRole("spinbutton", { name: "Dag", exact: true })).toHaveTextContent("23");
|
||||
| ^
|
||||
38 | expect(title).toHaveValue("Retain this draft");
|
||||
39 | fireEvent.click(screen.getByRole("button", { name: "English", exact: true }));
|
||||
40 | expect(screen.getByRole("spinbutton", { name: "Day", exact: true })).toHaveTextContent("23");
|
||||
|
||||
at Object.getElementError (node_modules/@testing-library/dom/dist/config.js:37:19)
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:76:38
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:52:17
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:95:19
|
||||
at Object.getByRole (src/date-picker-localisation.test.tsx:37:17)
|
||||
|
||||
Test Suites: 1 failed, 1 total
|
||||
Tests: 2 failed, 2 total
|
||||
Snapshots: 0 total
|
||||
Time: 3.687 s
|
||||
Ran all test suites matching date-picker-localisation.test.tsx.
|
||||
@@ -1,49 +0,0 @@
|
||||
{
|
||||
"journeys": [],
|
||||
"captures": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"writes": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"unavailableReads": [],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com"
|
||||
]
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
Checking America-Los_Angeles-en
|
||||
node:internal/modules/run_main:107
|
||||
triggerUncaughtException(
|
||||
^
|
||||
|
||||
locator.click: Timeout 30000ms exceeded.
|
||||
Call log:
|
||||
- waiting for getByRole('dialog', { name: 'Add Job', exact: true }).getByRole('button', { name: 'Enter details manually', exact: true })
|
||||
|
||||
at C:\Users\Connor\.codex\worktrees\direct-roadmap-integration\Job tracker\job-tracker-ui\scripts\verify-job-date-widgets.mjs:100:89 {
|
||||
log: [
|
||||
" - waiting for getByRole('dialog', { name: 'Add Job', exact: true }).getByRole('button', { name: 'Enter details manually', exact: true })"
|
||||
],
|
||||
name: 'TimeoutError'
|
||||
}
|
||||
|
||||
Node.js v24.19.0
|
||||
@@ -1,10 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 test
|
||||
> jest --runInBand date-picker-localisation.test.tsx locale-fetch-stability.test.tsx app-shell-navigation.test.tsx edit-job-revision.test.tsx job-date-picker-calendar.test.tsx theme-state.test.tsx
|
||||
|
||||
|
||||
Test Suites: 6 passed, 6 total
|
||||
Tests: 25 passed, 25 total
|
||||
Snapshots: 0 total
|
||||
Time: 14.463 s
|
||||
Ran all test suites matching date-picker-localisation.test.tsx|locale-fetch-stability.test.tsx|app-shell-navigation.test.tsx|edit-job-revision.test.tsx|job-date-picker-calendar.test.tsx|theme-state.test.tsx.
|
||||
|
Before Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 109 KiB |
|
Before Width: | Height: | Size: 109 KiB |
|
Before Width: | Height: | Size: 109 KiB |
|
Before Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 54 KiB |
@@ -1,117 +0,0 @@
|
||||
{
|
||||
"journeys": [
|
||||
{
|
||||
"name": "390-nb-dark",
|
||||
"counts": [
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
"downloads": 3
|
||||
},
|
||||
{
|
||||
"name": "1440-en-light",
|
||||
"counts": [
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
"downloads": 3
|
||||
}
|
||||
],
|
||||
"downloads": [
|
||||
{
|
||||
"name": "390-nb-dark",
|
||||
"kind": "converted",
|
||||
"expectedCount": 0,
|
||||
"filename": "390-nb-dark-converted-0.gz",
|
||||
"bytes": 2,
|
||||
"rawSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
||||
"gzipSha256": "50c15d921df28492e2d9bf2da5d1cd5c78ee416bdcf478074db63d76d2381cba"
|
||||
},
|
||||
{
|
||||
"name": "390-nb-dark",
|
||||
"kind": "converted",
|
||||
"expectedCount": 1,
|
||||
"filename": "390-nb-dark-converted-1.gz",
|
||||
"bytes": 235,
|
||||
"rawSha256": "6af2ec936c07ea767b72978f5e31f17bd750fb942628b6765a5befb544a60bf5",
|
||||
"gzipSha256": "2117b71f51b07c27587ff99d40acd9ef43b538a62658ce52ea060ab4a3c2cba5"
|
||||
},
|
||||
{
|
||||
"name": "390-nb-dark",
|
||||
"kind": "converted",
|
||||
"expectedCount": 2,
|
||||
"filename": "390-nb-dark-converted-2.gz",
|
||||
"bytes": 468,
|
||||
"rawSha256": "18a8f3b661dc979e030446ecb3977e92fa083e81a73e96847811ba26a861409a",
|
||||
"gzipSha256": "7f3553fe748c77febb7f3b312d152002e44c1608e05e99b05b7865dac0154326"
|
||||
},
|
||||
{
|
||||
"name": "1440-en-light",
|
||||
"kind": "converted",
|
||||
"expectedCount": 0,
|
||||
"filename": "1440-en-light-converted-0.gz",
|
||||
"bytes": 2,
|
||||
"rawSha256": "4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945",
|
||||
"gzipSha256": "50c15d921df28492e2d9bf2da5d1cd5c78ee416bdcf478074db63d76d2381cba"
|
||||
},
|
||||
{
|
||||
"name": "1440-en-light",
|
||||
"kind": "converted",
|
||||
"expectedCount": 1,
|
||||
"filename": "1440-en-light-converted-1.gz",
|
||||
"bytes": 235,
|
||||
"rawSha256": "6af2ec936c07ea767b72978f5e31f17bd750fb942628b6765a5befb544a60bf5",
|
||||
"gzipSha256": "2117b71f51b07c27587ff99d40acd9ef43b538a62658ce52ea060ab4a3c2cba5"
|
||||
},
|
||||
{
|
||||
"name": "1440-en-light",
|
||||
"kind": "converted",
|
||||
"expectedCount": 2,
|
||||
"filename": "1440-en-light-converted-2.gz",
|
||||
"bytes": 468,
|
||||
"rawSha256": "18a8f3b661dc979e030446ecb3977e92fa083e81a73e96847811ba26a861409a",
|
||||
"gzipSha256": "7f3553fe748c77febb7f3b312d152002e44c1608e05e99b05b7865dac0154326"
|
||||
}
|
||||
],
|
||||
"captures": [
|
||||
{
|
||||
"name": "390-nb-dark",
|
||||
"count": 0,
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"name": "390-nb-dark",
|
||||
"count": 1,
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"name": "390-nb-dark",
|
||||
"count": 2,
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"name": "1440-en-light",
|
||||
"count": 0,
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"name": "1440-en-light",
|
||||
"count": 1,
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"name": "1440-en-light",
|
||||
"count": 2,
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"writes": [],
|
||||
"unavailableReads": [],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
]
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
Checking 390-nb-dark
|
||||
Checking 1440-en-light
|
||||
PASS 2 configurations, 6 native downloads, 6 accessibility scans; no API writes
|
||||
@@ -1,23 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 build
|
||||
> node --max-old-space-size=4096 ./node_modules/next/dist/bin/next build
|
||||
|
||||
▲ Next.js 16.4.1 (Turbopack)
|
||||
✓ Running next.config.js took 31ms
|
||||
|
||||
Creating an optimized production build ...
|
||||
✓ Compiled successfully in 507ms
|
||||
Running TypeScript ...
|
||||
Finished TypeScript in 12.7s ...
|
||||
Collecting page data using 4 workers ...
|
||||
Generating static pages using 4 workers (0/3) ...
|
||||
✓ Generating static pages using 4 workers (3/3) in 797ms
|
||||
Finalizing page optimization ...
|
||||
|
||||
Route (app)
|
||||
┌ ○ /
|
||||
└ ○ /_not-found
|
||||
|
||||
|
||||
○ (Static) prerendered as static content
|
||||
|
||||
@@ -1,220 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 test
|
||||
> jest --runInBand job-export-lifetime.test.tsx
|
||||
|
||||
FAIL src/job-export-lifetime.test.tsx (10.566 s)
|
||||
● en conversion distinguishes zero, one and multiple rows
|
||||
|
||||
Unable to find an element with the text: Converted 1 row to import JSON.. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
<body>
|
||||
<div>
|
||||
<section
|
||||
aria-labelledby="_r_2b_"
|
||||
class="MuiBox-root css-s8beop"
|
||||
>
|
||||
<header
|
||||
class="MuiBox-root css-163u82n"
|
||||
>
|
||||
<div
|
||||
class="MuiBox-root css-14m33b5"
|
||||
>
|
||||
<h3
|
||||
class="MuiTypography-root MuiTypography-sectionTitle css-uf4832-MuiTypography-root"
|
||||
id="_r_2b_"
|
||||
>
|
||||
Import / Export
|
||||
</h3>
|
||||
<p
|
||||
class="MuiTypography-root MuiTypography-pageDescription css-1sqgc3a-MuiTypography-root"
|
||||
>
|
||||
Import expects the JSON exported by this app (an array of job objects with embedded company).
|
||||
</p>
|
||||
</div>
|
||||
</header>
|
||||
<div
|
||||
class="MuiBox-root css-31l7gp"
|
||||
>
|
||||
<div
|
||||
aria-busy="false"
|
||||
aria-label="Import / Export"
|
||||
class="MuiBox-root css-dtwbgt"
|
||||
role="group"
|
||||
tabindex="-1"
|
||||
>
|
||||
<p
|
||||
class="MuiTypography-root MuiTypography-body2 css-1qf9eb3-MuiTypography-root"
|
||||
>
|
||||
Imports create new jobs from supported fields. IDs, owners, history, attachments and CV associations are not restored. Keep Settings open until the import finishes. If you leave, the import may be incomplete.
|
||||
</p>
|
||||
<div
|
||||
class="MuiBox-root css-14qhqxr"
|
||||
>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Export JSON
|
||||
</button>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Export CSV
|
||||
</button>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary css-83fk99-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Import JSON
|
||||
</button>
|
||||
<input
|
||||
accept="application/json"
|
||||
hidden=""
|
||||
type="file"
|
||||
/>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Convert CSV to Import JSON
|
||||
</button>
|
||||
<input
|
||||
accept=".csv,text/csv"
|
||||
hidden=""
|
||||
type="file"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
104 | await act(async () => fireEvent.change(document.querySelector('input[accept=".csv,text/csv"]')!, { target: { files: [file] } }));
|
||||
105 | const message = language === "en" ? `Converted ${count} ${count === 1 ? "row" : "rows"} to import JSON.` : `Konverterte ${count} ${count === 1 ? "rad" : "rader"} til import-JSON.`;
|
||||
> 106 | expect(await screen.findByText(message)).toBeVisible();
|
||||
| ^
|
||||
107 | }
|
||||
108 | expect(download).toHaveBeenCalledTimes(3); expect(client.post).not.toHaveBeenCalled();
|
||||
109 | });
|
||||
|
||||
at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
|
||||
at findByText (src/job-export-lifetime.test.tsx:106:25)
|
||||
|
||||
● nb conversion distinguishes zero, one and multiple rows
|
||||
|
||||
Unable to find an element with the text: Konverterte 1 rad til import-JSON.. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
<body>
|
||||
<div>
|
||||
<section
|
||||
aria-labelledby="_r_2h_"
|
||||
class="MuiBox-root css-s8beop"
|
||||
>
|
||||
<header
|
||||
class="MuiBox-root css-163u82n"
|
||||
>
|
||||
<div
|
||||
class="MuiBox-root css-14m33b5"
|
||||
>
|
||||
<h3
|
||||
class="MuiTypography-root MuiTypography-sectionTitle css-uf4832-MuiTypography-root"
|
||||
id="_r_2h_"
|
||||
>
|
||||
Import / eksport
|
||||
</h3>
|
||||
<p
|
||||
class="MuiTypography-root MuiTypography-pageDescription css-1sqgc3a-MuiTypography-root"
|
||||
>
|
||||
Import forventer JSON eksportert av denne appen (en matrise med jobbobjekter med innebygd selskap).
|
||||
</p>
|
||||
</div>
|
||||
</header>
|
||||
<div
|
||||
class="MuiBox-root css-31l7gp"
|
||||
>
|
||||
<div
|
||||
aria-busy="false"
|
||||
aria-label="Import / eksport"
|
||||
class="MuiBox-root css-dtwbgt"
|
||||
role="group"
|
||||
tabindex="-1"
|
||||
>
|
||||
<p
|
||||
class="MuiTypography-root MuiTypography-body2 css-1qf9eb3-MuiTypography-root"
|
||||
>
|
||||
Import oppretter nye jobber fra støttede felt. ID-er, eiere, historikk, vedlegg og CV-koblinger gjenopprettes ikke. Hold Innstillinger åpent til importen er ferdig. Hvis du går ut, kan importen bli ufullstendig.
|
||||
</p>
|
||||
<div
|
||||
class="MuiBox-root css-14qhqxr"
|
||||
>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Eksporter JSON
|
||||
</button>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Eksporter CSV
|
||||
</button>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary css-83fk99-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Importer JSON
|
||||
</button>
|
||||
<input
|
||||
accept="application/json"
|
||||
hidden=""
|
||||
type="file"
|
||||
/>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Konverter CSV til import-JSON
|
||||
</button>
|
||||
<input
|
||||
accept=".csv,text/csv"
|
||||
hidden=""
|
||||
type="file"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
104 | await act(async () => fireEvent.change(document.querySelector('input[accept=".csv,text/csv"]')!, { target: { files: [file] } }));
|
||||
105 | const message = language === "en" ? `Converted ${count} ${count === 1 ? "row" : "rows"} to import JSON.` : `Konverterte ${count} ${count === 1 ? "rad" : "rader"} til import-JSON.`;
|
||||
> 106 | expect(await screen.findByText(message)).toBeVisible();
|
||||
| ^
|
||||
107 | }
|
||||
108 | expect(download).toHaveBeenCalledTimes(3); expect(client.post).not.toHaveBeenCalled();
|
||||
109 | });
|
||||
|
||||
at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
|
||||
at findByText (src/job-export-lifetime.test.tsx:106:25)
|
||||
|
||||
Test Suites: 1 failed, 1 total
|
||||
Tests: 2 failed, 14 passed, 16 total
|
||||
Snapshots: 0 total
|
||||
Time: 11.391 s
|
||||
Ran all test suites matching job-export-lifetime.test.tsx.
|
||||
@@ -1,238 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 test
|
||||
> jest --runInBand job-import.test.tsx
|
||||
|
||||
FAIL src/job-import.test.tsx (11.145 s)
|
||||
● en import feedback distinguishes one job from multiple jobs
|
||||
|
||||
Unable to find an element with the text: Imported 1 job.. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
<body>
|
||||
<div>
|
||||
<button>
|
||||
Toggle import panel
|
||||
</button>
|
||||
<section
|
||||
aria-labelledby="_r_0_"
|
||||
class="MuiBox-root css-s8beop"
|
||||
>
|
||||
<header
|
||||
class="MuiBox-root css-163u82n"
|
||||
>
|
||||
<div
|
||||
class="MuiBox-root css-14m33b5"
|
||||
>
|
||||
<h3
|
||||
class="MuiTypography-root MuiTypography-sectionTitle css-uf4832-MuiTypography-root"
|
||||
id="_r_0_"
|
||||
>
|
||||
Import / Export
|
||||
</h3>
|
||||
<p
|
||||
class="MuiTypography-root MuiTypography-pageDescription css-1sqgc3a-MuiTypography-root"
|
||||
>
|
||||
Import expects the JSON exported by this app (an array of job objects with embedded company).
|
||||
</p>
|
||||
</div>
|
||||
</header>
|
||||
<div
|
||||
class="MuiBox-root css-31l7gp"
|
||||
>
|
||||
<div
|
||||
aria-busy="false"
|
||||
aria-label="Import / Export"
|
||||
class="MuiBox-root css-dtwbgt"
|
||||
role="group"
|
||||
tabindex="-1"
|
||||
>
|
||||
<p
|
||||
class="MuiTypography-root MuiTypography-body2 css-1qf9eb3-MuiTypography-root"
|
||||
>
|
||||
Imports create new jobs from supported fields. IDs, owners, history, attachments and CV associations are not restored. Keep Settings open until the import finishes. If you leave, the import may be incomplete.
|
||||
</p>
|
||||
<div
|
||||
class="MuiBox-root css-14qhqxr"
|
||||
>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Export JSON
|
||||
</button>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Export CSV
|
||||
</button>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary css-83fk99-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Import JSON
|
||||
</button>
|
||||
<input
|
||||
accept="application/json"
|
||||
hidden=""
|
||||
type="file"
|
||||
/>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Convert CSV to Import JSON
|
||||
</button>
|
||||
<input
|
||||
accept=".csv,text/csv"
|
||||
hidden=""
|
||||
type="file"
|
||||
/>
|
||||
</div>
|
||||
<p
|
||||
class="MuiTypography-root MuiTypography-body2 css-1qf9eb3-MuiTypography-root"
|
||||
role="status"
|
||||
>
|
||||
Last import: 1
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
60 | await select(selectedFile(Array.from({ length: count }, (_, i) => row(`Synthetic role ${i + 1}`))));
|
||||
61 | const message = language === "en" ? `Imported ${count} ${count === 1 ? "job" : "jobs"}.` : `Importerte ${count} ${count === 1 ? "jobb" : "jobber"}.`;
|
||||
> 62 | expect(await screen.findByText(message)).toBeVisible();
|
||||
| ^
|
||||
63 | }
|
||||
64 | expect(mockedApi.post).toHaveBeenCalledTimes(6);
|
||||
65 | });
|
||||
|
||||
at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
|
||||
at findByText (src/job-import.test.tsx:62:25)
|
||||
|
||||
● nb import feedback distinguishes one job from multiple jobs
|
||||
|
||||
Unable to find an element with the text: Importerte 1 jobb.. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
<body>
|
||||
<div>
|
||||
<button>
|
||||
Toggle import panel
|
||||
</button>
|
||||
<section
|
||||
aria-labelledby="_r_6_"
|
||||
class="MuiBox-root css-s8beop"
|
||||
>
|
||||
<header
|
||||
class="MuiBox-root css-163u82n"
|
||||
>
|
||||
<div
|
||||
class="MuiBox-root css-14m33b5"
|
||||
>
|
||||
<h3
|
||||
class="MuiTypography-root MuiTypography-sectionTitle css-uf4832-MuiTypography-root"
|
||||
id="_r_6_"
|
||||
>
|
||||
Import / eksport
|
||||
</h3>
|
||||
<p
|
||||
class="MuiTypography-root MuiTypography-pageDescription css-1sqgc3a-MuiTypography-root"
|
||||
>
|
||||
Import forventer JSON eksportert av denne appen (en matrise med jobbobjekter med innebygd selskap).
|
||||
</p>
|
||||
</div>
|
||||
</header>
|
||||
<div
|
||||
class="MuiBox-root css-31l7gp"
|
||||
>
|
||||
<div
|
||||
aria-busy="false"
|
||||
aria-label="Import / eksport"
|
||||
class="MuiBox-root css-dtwbgt"
|
||||
role="group"
|
||||
tabindex="-1"
|
||||
>
|
||||
<p
|
||||
class="MuiTypography-root MuiTypography-body2 css-1qf9eb3-MuiTypography-root"
|
||||
>
|
||||
Import oppretter nye jobber fra støttede felt. ID-er, eiere, historikk, vedlegg og CV-koblinger gjenopprettes ikke. Hold Innstillinger åpent til importen er ferdig. Hvis du går ut, kan importen bli ufullstendig.
|
||||
</p>
|
||||
<div
|
||||
class="MuiBox-root css-14qhqxr"
|
||||
>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Eksporter JSON
|
||||
</button>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Eksporter CSV
|
||||
</button>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-contained MuiButton-containedPrimary MuiButton-sizeMedium MuiButton-containedSizeMedium MuiButton-colorPrimary css-83fk99-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Importer JSON
|
||||
</button>
|
||||
<input
|
||||
accept="application/json"
|
||||
hidden=""
|
||||
type="file"
|
||||
/>
|
||||
<button
|
||||
class="MuiButtonBase-root MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary MuiButton-root MuiButton-outlined MuiButton-outlinedPrimary MuiButton-sizeMedium MuiButton-outlinedSizeMedium MuiButton-colorPrimary css-1g6yn02-MuiButtonBase-root-MuiButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
>
|
||||
Konverter CSV til import-JSON
|
||||
</button>
|
||||
<input
|
||||
accept=".csv,text/csv"
|
||||
hidden=""
|
||||
type="file"
|
||||
/>
|
||||
</div>
|
||||
<p
|
||||
class="MuiTypography-root MuiTypography-body2 css-1qf9eb3-MuiTypography-root"
|
||||
role="status"
|
||||
>
|
||||
Siste import: 1
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
60 | await select(selectedFile(Array.from({ length: count }, (_, i) => row(`Synthetic role ${i + 1}`))));
|
||||
61 | const message = language === "en" ? `Imported ${count} ${count === 1 ? "job" : "jobs"}.` : `Importerte ${count} ${count === 1 ? "jobb" : "jobber"}.`;
|
||||
> 62 | expect(await screen.findByText(message)).toBeVisible();
|
||||
| ^
|
||||
63 | }
|
||||
64 | expect(mockedApi.post).toHaveBeenCalledTimes(6);
|
||||
65 | });
|
||||
|
||||
at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:86:33
|
||||
at findByText (src/job-import.test.tsx:62:25)
|
||||
|
||||
Test Suites: 1 failed, 1 total
|
||||
Tests: 2 failed, 11 passed, 13 total
|
||||
Snapshots: 0 total
|
||||
Time: 11.99 s
|
||||
Ran all test suites matching job-import.test.tsx.
|
||||
@@ -1,10 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 test
|
||||
> jest --runInBand job-export-lifetime.test.tsx job-import.test.tsx settings-import-lifetime.test.tsx file-picker-activation.test.tsx translation-catalogue.test.ts i18n-provider.test.tsx
|
||||
|
||||
|
||||
Test Suites: 6 passed, 6 total
|
||||
Tests: 50 passed, 50 total
|
||||
Snapshots: 0 total
|
||||
Time: 10.554 s
|
||||
Ran all test suites matching job-export-lifetime.test.tsx|job-import.test.tsx|settings-import-lifetime.test.tsx|file-picker-activation.test.tsx|translation-catalogue.test.ts|i18n-provider.test.tsx.
|
||||
@@ -1,822 +0,0 @@
|
||||
{
|
||||
"journeys": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"width": 1440,
|
||||
"touch": false,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 22,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"width": 390,
|
||||
"touch": true,
|
||||
"theme": "dark",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 22,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"width": 768,
|
||||
"touch": true,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 22,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"width": 1440,
|
||||
"touch": false,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"width": 390,
|
||||
"touch": true,
|
||||
"theme": "dark",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"width": 768,
|
||||
"touch": true,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"width": 1440,
|
||||
"touch": false,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"width": 390,
|
||||
"touch": true,
|
||||
"theme": "dark",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"width": 768,
|
||||
"touch": true,
|
||||
"theme": "light",
|
||||
"sevenCalendarSelections": "PASS",
|
||||
"localeDraftRetention": "PASS",
|
||||
"localToday": 23,
|
||||
"fixtureSaveCreate": "PASS"
|
||||
}
|
||||
],
|
||||
"captures": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"state": "calendar",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"state": "edit",
|
||||
"violations": []
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"state": "add",
|
||||
"violations": []
|
||||
}
|
||||
],
|
||||
"writes": [
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "en",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "America/Los_Angeles",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "en",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Europe/Oslo",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "en",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"method": "PUT",
|
||||
"body": {
|
||||
"expectedVersion": 7,
|
||||
"jobTitle": "Retain teacher draft",
|
||||
"companyId": 1,
|
||||
"status": "Applied",
|
||||
"statusChangedAt": null,
|
||||
"responseReceived": true,
|
||||
"responseDate": "2026-11-24",
|
||||
"location": null,
|
||||
"salary": null,
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": "2026-11-24",
|
||||
"notes": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24",
|
||||
"jobUrl": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"zone": "Pacific/Kiritimati",
|
||||
"language": "nb",
|
||||
"method": "POST",
|
||||
"body": {
|
||||
"jobTitle": "Teacher application",
|
||||
"companyId": 1,
|
||||
"status": "Saved",
|
||||
"location": "",
|
||||
"salary": "",
|
||||
"salaryMin": null,
|
||||
"salaryMax": null,
|
||||
"salaryCurrency": null,
|
||||
"salaryPeriod": null,
|
||||
"nextAction": null,
|
||||
"followUpAt": null,
|
||||
"jobUrl": "",
|
||||
"source": null,
|
||||
"countryCode": null,
|
||||
"description": null,
|
||||
"translatedDescription": null,
|
||||
"descriptionLanguage": null,
|
||||
"tags": null,
|
||||
"deadline": "2026-11-24",
|
||||
"notes": "",
|
||||
"coverLetterText": null,
|
||||
"dateApplied": "2026-11-24"
|
||||
}
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"unavailableReads": [],
|
||||
"blockedExternal": [
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com",
|
||||
"https://fonts.googleapis.com"
|
||||
]
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
Checking America-Los_Angeles-en-1440-light
|
||||
Checking America-Los_Angeles-nb-390-dark
|
||||
Checking America-Los_Angeles-nb-768-light
|
||||
Checking Europe-Oslo-en-1440-light
|
||||
Checking Europe-Oslo-nb-390-dark
|
||||
Checking Europe-Oslo-nb-768-light
|
||||
Checking Pacific-Kiritimati-en-1440-light
|
||||
Checking Pacific-Kiritimati-nb-390-dark
|
||||
Checking Pacific-Kiritimati-nb-768-light
|
||||
PASS 9 real-widget journeys, 27 axe captures, 18 intercepted fixture writes
|
||||
@@ -1,23 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 build
|
||||
> node --max-old-space-size=4096 ./node_modules/next/dist/bin/next build
|
||||
|
||||
▲ Next.js 16.4.1 (Turbopack)
|
||||
✓ Running next.config.js took 26ms
|
||||
|
||||
Creating an optimized production build ...
|
||||
✓ Compiled successfully in 893ms
|
||||
Running TypeScript ...
|
||||
Finished TypeScript in 5.1s ...
|
||||
Collecting page data using 4 workers ...
|
||||
Generating static pages using 4 workers (0/3) ...
|
||||
✓ Generating static pages using 4 workers (3/3) in 808ms
|
||||
Finalizing page optimization ...
|
||||
|
||||
Route (app)
|
||||
┌ ○ /
|
||||
└ ○ /_not-found
|
||||
|
||||
|
||||
○ (Static) prerendered as static content
|
||||
|
||||
@@ -1,281 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 test
|
||||
> jest --runInBand date-picker-localisation.test.tsx
|
||||
|
||||
FAIL src/date-picker-localisation.test.tsx
|
||||
● shared widget controls follow live UI language without losing selection or dark theme
|
||||
|
||||
TestingLibraryElementError: Unable to find an accessible element with the role "button" and name "Åpne"
|
||||
|
||||
Here are the accessible roles:
|
||||
|
||||
textbox:
|
||||
|
||||
Name "Unsaved title":
|
||||
<input
|
||||
aria-label="Unsaved title"
|
||||
value="Teacher draft"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
button:
|
||||
|
||||
Name "Bokmål":
|
||||
<button />
|
||||
|
||||
Name "English":
|
||||
<button />
|
||||
|
||||
Name "Velg dato, valgt dato er 23. nov. 2026":
|
||||
<button
|
||||
aria-label="Velg dato, valgt dato er 23. nov. 2026"
|
||||
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-edgeEnd MuiIconButton-sizeMedium css-bspctt-MuiButtonBase-root-MuiIconButton-root"
|
||||
tabindex="0"
|
||||
type="button"
|
||||
/>
|
||||
|
||||
Name "Open":
|
||||
<button
|
||||
aria-label="Open"
|
||||
class="MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium MuiAutocomplete-popupIndicator css-2z5gju-MuiButtonBase-root-MuiIconButton-root-MuiAutocomplete-popupIndicator"
|
||||
tabindex="-1"
|
||||
title="Open"
|
||||
type="button"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
group:
|
||||
|
||||
Name "Deadline":
|
||||
<div
|
||||
aria-invalid="false"
|
||||
aria-labelledby="_r_8_-label"
|
||||
class="MuiPickersInputBase-root MuiPickersOutlinedInput-root MuiPickersInputBase-colorPrimary MuiPickersInputBase-adornedEnd css-18u0f3-MuiPickersInputBase-root-MuiPickersOutlinedInput-root"
|
||||
role="group"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
spinbutton:
|
||||
|
||||
Name "Dag":
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Dag"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="30"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="23"
|
||||
aria-valuetext="23."
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-15k54eh-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="0"
|
||||
/>
|
||||
|
||||
Name "Måned":
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Måned"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="12"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="11"
|
||||
aria-valuetext="november"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-15k54eh-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
/>
|
||||
|
||||
Name "År":
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="År"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="9999"
|
||||
aria-valuemin="0"
|
||||
aria-valuenow="2026"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-15k54eh-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
combobox:
|
||||
|
||||
Name "Occupation":
|
||||
<input
|
||||
aria-autocomplete="list"
|
||||
aria-expanded="false"
|
||||
aria-invalid="false"
|
||||
autocapitalize="none"
|
||||
autocomplete="off"
|
||||
class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedEnd MuiAutocomplete-input MuiAutocomplete-inputFocused css-mf5los-MuiInputBase-input-MuiOutlinedInput-input"
|
||||
id="_r_b_"
|
||||
role="combobox"
|
||||
spellcheck="false"
|
||||
type="text"
|
||||
value="Teacher"
|
||||
/>
|
||||
|
||||
--------------------------------------------------
|
||||
|
||||
Ignored nodes: comments, script, style
|
||||
<body>
|
||||
<div>
|
||||
<input
|
||||
aria-label="Unsaved title"
|
||||
value="Teacher draft"
|
||||
/>
|
||||
<button>
|
||||
Bokmål
|
||||
</button>
|
||||
<button>
|
||||
English
|
||||
</button>
|
||||
<div
|
||||
class="MuiFormControl-root MuiPickersTextField-root css-eqc3kq-MuiFormControl-root-MuiPickersTextField-root"
|
||||
>
|
||||
<label
|
||||
class="MuiFormLabel-root MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined MuiFormLabel-colorPrimary MuiFormLabel-filled MuiInputLabel-root MuiInputLabel-formControl MuiInputLabel-animated MuiInputLabel-shrink MuiInputLabel-outlined css-1rpfqai-MuiFormLabel-root-MuiInputLabel-root"
|
||||
data-shrink="true"
|
||||
for="_r_8_"
|
||||
id="_r_8_-label"
|
||||
>
|
||||
Deadline
|
||||
</label>
|
||||
<div
|
||||
aria-invalid="false"
|
||||
aria-labelledby="_r_8_-label"
|
||||
class="MuiPickersInputBase-root MuiPickersOutlinedInput-root MuiPickersInputBase-colorPrimary MuiPickersInputBase-adornedEnd css-18u0f3-MuiPickersInputBase-root-MuiPickersOutlinedInput-root"
|
||||
role="group"
|
||||
>
|
||||
<div
|
||||
class="MuiPickersSectionList-root MuiPickersInputBase-sectionsContainer css-1pzdbd7-MuiPickersSectionList-root-MuiPickersInputBase-sectionsContainer-MuiPickersOutlinedInput-sectionsContainer"
|
||||
contenteditable="false"
|
||||
tabindex="0"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersSectionList-section css-efy5wg-MuiPickersSectionList-section-MuiPickersInputBase-section"
|
||||
data-sectionindex="0"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionBefore css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
/>
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Dag"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="30"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="23"
|
||||
aria-valuetext="23."
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-15k54eh-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="0"
|
||||
>
|
||||
23
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionAfter css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
>
|
||||
.
|
||||
</span>
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersSectionList-section css-efy5wg-MuiPickersSectionList-section-MuiPickersInputBase-section"
|
||||
data-sectionindex="1"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionBefore css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
/>
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="Måned"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="12"
|
||||
aria-valuemin="1"
|
||||
aria-valuenow="11"
|
||||
aria-valuetext="november"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-15k54eh-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
>
|
||||
11
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionAfter css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
>
|
||||
.
|
||||
</span>
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersSectionList-section css-efy5wg-MuiPickersSectionList-section-MuiPickersInputBase-section"
|
||||
data-sectionindex="2"
|
||||
>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionBefore css-w1q93y-MuiPickersSectionList-sectionSeparator-MuiPickersInputBase-separator"
|
||||
/>
|
||||
<span
|
||||
aria-disabled="false"
|
||||
aria-label="År"
|
||||
aria-readonly="false"
|
||||
aria-valuemax="9999"
|
||||
aria-valuemin="0"
|
||||
aria-valuenow="2026"
|
||||
autocapitalize="none"
|
||||
autocorrect="off"
|
||||
class="MuiPickersSectionList-sectionContent MuiPickersInputBase-sectionContent css-15k54eh-MuiPickersSectionList-sectionContent-MuiPickersInputBase-sectionContent"
|
||||
contenteditable="true"
|
||||
inputmode="numeric"
|
||||
role="spinbutton"
|
||||
spellcheck="false"
|
||||
tabindex="-1"
|
||||
>
|
||||
2026
|
||||
</span>
|
||||
<span
|
||||
class="MuiPickersInputBase-sectionAfter css-w1q93y-MuiP...
|
||||
|
||||
35 | localStorage.setItem("uiLanguage", "nb");
|
||||
36 | render(<JobTrackerThemeProvider preference="dark" systemPrefersDark={false}><I18nProvider><DateLocalizationProvider><Form /></DateLocalizationProvider></I18nProvider></JobTrackerThemeProvider>);
|
||||
> 37 | expect(screen.getByRole("button", { name: "Åpne" })).toBeInTheDocument();
|
||||
| ^
|
||||
38 | expect(screen.getByRole("button", { name: "Tøm" })).toBeInTheDocument();
|
||||
39 | const occupation = screen.getByRole("combobox", { name: "Occupation" });
|
||||
40 | expect(occupation).toHaveValue("Teacher");
|
||||
|
||||
at Object.getElementError (node_modules/@testing-library/dom/dist/config.js:37:19)
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:76:38
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:52:17
|
||||
at node_modules/@testing-library/dom/dist/query-helpers.js:95:19
|
||||
at Object.getByRole (src/date-picker-localisation.test.tsx:37:17)
|
||||
|
||||
Test Suites: 1 failed, 1 total
|
||||
Tests: 1 failed, 2 passed, 3 total
|
||||
Snapshots: 0 total
|
||||
Time: 4.698 s
|
||||
Ran all test suites matching date-picker-localisation.test.tsx.
|
||||
@@ -1,10 +0,0 @@
|
||||
|
||||
> job-tracker-ui@0.1.0 test
|
||||
> jest --runInBand date-picker-localisation.test.tsx theme-state.test.tsx loaded-theme-states.test.tsx edit-job-revision.test.tsx
|
||||
|
||||
|
||||
Test Suites: 4 passed, 4 total
|
||||
Tests: 20 passed, 20 total
|
||||
Snapshots: 0 total
|
||||
Time: 9.802 s
|
||||
Ran all test suites matching date-picker-localisation.test.tsx|theme-state.test.tsx|loaded-theme-states.test.tsx|edit-job-revision.test.tsx.
|
||||
|
Before Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 87 KiB |