From ffbaab27edc2c4135465ceee6ff002267203fdfd Mon Sep 17 00:00:00 2001 From: Andreas Samuelsson Date: Fri, 3 Apr 2026 08:38:37 +0200 Subject: [PATCH 1/4] Add attribute traceId to all pubsub events --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index cf7599d..53dc9fc 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,5 @@ import nock from "nock"; -import { randomUUID } from "crypto"; +import { randomUUID, randomBytes } from "crypto"; import { pathToRegexp, match } from "path-to-regexp"; const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89abcd][0-9a-f]{3}-[0-9a-f]{12}$/i; @@ -190,7 +190,7 @@ async function sendEvent(type, id, event) { id, updated: new Date(), })), - attributes: {}, + attributes: { traceId: randomBytes(16).toString("hex") }, }; await pubSubListener(message); } From 7bf4cba055e2ae846c4450dd8b0ab5a747865baf Mon Sep 17 00:00:00 2001 From: Andreas Samuelsson Date: Tue, 14 Apr 2026 14:04:59 +0200 Subject: [PATCH 2/4] Bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 66b1f93..a6be826 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bonniernews/fake-tool-api", - "version": "1.7.1", + "version": "1.7.2", "type": "module", "description": "Mocked Bonnier News tool api, for use in automated tests", "main": "index.js", From fe26929a52791d3b94d2949d2dcf2909859ba73e Mon Sep 17 00:00:00 2001 From: Andreas Samuelsson Date: Wed, 15 Apr 2026 06:45:48 +0200 Subject: [PATCH 3/4] Convert dates passed in publishTime to strings in addSlug --- index.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/index.js b/index.js index 53dc9fc..400edc7 100644 --- a/index.js +++ b/index.js @@ -139,7 +139,10 @@ export async function addSlug(slug) { if (!publishTime) { slug.publishTime = new Date().toISOString(); + } else if (publishTime instanceof Date) { + slug.publishTime = publishTime.toISOString(); } + slugs.push(slug); const valueContent = contentByType[type][id]; From c5a70152fbca2a31ba74bafaa78bce61f65feee3 Mon Sep 17 00:00:00 2001 From: Andreas Samuelsson Date: Wed, 15 Apr 2026 06:57:37 +0200 Subject: [PATCH 4/4] Updated a test to make sure addSlug can handle publishTime as Date --- test/index.spec.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/index.spec.js b/test/index.spec.js index 4e6206a..c6c2164 100644 --- a/test/index.spec.js +++ b/test/index.spec.js @@ -648,11 +648,17 @@ describe("Fake tool api", () => { const articleId = randomUUID(); const slugId1 = randomUUID(); const slugId2 = randomUUID(); + const slugId3 = randomUUID(); + const slugId4 = randomUUID(); const publishTime1 = "2024-01-01T09:00:00.000Z"; const publishTime2 = "2024-01-01T11:00:00.000Z"; + const publishTime3 = new Date("2024-01-01T10:00:00.000Z"); + const publishTime4 = new Date("2024-01-01T12:00:00.000Z"); await fakeToolApi.addSlug({ id: slugId1, value: articleId, publishTime: publishTime1 }); await fakeToolApi.addSlug({ id: slugId2, value: articleId, publishTime: publishTime2 }); + await fakeToolApi.addSlug({ id: slugId3, value: articleId, publishTime: publishTime3 }); + await fakeToolApi.addSlug({ id: slugId4, value: articleId, publishTime: publishTime4 }); const res = await fetch(`${baseUrl}/slug/byValue/${articleId}`); expect(res.status).to.equal(200); @@ -660,11 +666,21 @@ describe("Fake tool api", () => { const data = await res.json(); expect(data).to.deep.equal({ slugs: [ + { + id: slugId4, + value: articleId, + publishTime: publishTime4.toISOString(), + }, { id: slugId2, value: articleId, publishTime: publishTime2, }, + { + id: slugId3, + value: articleId, + publishTime: publishTime3.toISOString(), + }, { id: slugId1, value: articleId,