From eb2dda699e174623ff5d76d0d22a8dab88349060 Mon Sep 17 00:00:00 2001 From: Paul Fitzpatrick Date: Wed, 9 Oct 2024 17:55:22 -0400 Subject: [PATCH] update NumberFormat test; change webhook test service --- test/common/NumberFormat.ts | 25 ++++++++++++++++--------- test/server/lib/DocApi.ts | 25 ++++++++++++++----------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/test/common/NumberFormat.ts b/test/common/NumberFormat.ts index 28202a18..4fe03516 100644 --- a/test/common/NumberFormat.ts +++ b/test/common/NumberFormat.ts @@ -6,7 +6,14 @@ describe("NumberFormat", function() { locale: 'en-US' }; + // useGrouping became more nuanced in recent node. + // Its old 'true' value may now be 'always' or 'auto'. + const useGroupingAlways = buildNumberFormat({numMode: 'decimal'}, defaultDocSettings).resolvedOptions().useGrouping as boolean|string; + const useGroupingAuto = (useGroupingAlways === 'always') ? 'auto' : true; + it("should convert Grist options into Intr.NumberFormat", function() { + assert.include([true, 'always'], String(useGroupingAlways)); + assert.ownInclude(buildNumberFormat({}, defaultDocSettings).resolvedOptions(), { minimumFractionDigits: 0, maximumFractionDigits: 10, @@ -17,21 +24,21 @@ describe("NumberFormat", function() { minimumFractionDigits: 0, maximumFractionDigits: 3, style: 'decimal', - useGrouping: true, + useGrouping: useGroupingAlways, }); assert.ownInclude(buildNumberFormat({numMode: 'percent'}, defaultDocSettings).resolvedOptions(), { minimumFractionDigits: 0, maximumFractionDigits: 0, // style: 'percent', // In node v14.17.0 style is 'decimal' (unclear why) // so we check final formatting instead in this case. - useGrouping: true, + useGrouping: useGroupingAuto, }); assert.equal(buildNumberFormat({numMode: 'percent'}, defaultDocSettings).format(0.5), '50%'); assert.ownInclude(buildNumberFormat({numMode: 'currency'}, defaultDocSettings).resolvedOptions(), { minimumFractionDigits: 2, maximumFractionDigits: 2, style: 'currency', - useGrouping: true, + useGrouping: useGroupingAuto, currency: 'USD', }); assert.ownInclude(buildNumberFormat({numMode: 'scientific'}, defaultDocSettings).resolvedOptions(), { @@ -73,42 +80,42 @@ describe("NumberFormat", function() { minimumFractionDigits: 2, maximumFractionDigits: 2, style: 'currency', - useGrouping: true, + useGrouping: useGroupingAuto, currency: 'EUR', }); assert.ownInclude(buildNumberFormat({numMode: 'currency'}, {locale: 'en-NZ'}).resolvedOptions(), { minimumFractionDigits: 2, maximumFractionDigits: 2, style: 'currency', - useGrouping: true, + useGrouping: useGroupingAuto, currency: 'NZD', }); assert.ownInclude(buildNumberFormat({numMode: 'currency'}, {locale: 'de-CH'}).resolvedOptions(), { minimumFractionDigits: 2, maximumFractionDigits: 2, style: 'currency', - useGrouping: true, + useGrouping: useGroupingAuto, currency: 'CHF', }); assert.ownInclude(buildNumberFormat({numMode: 'currency'}, {locale: 'es-AR'}).resolvedOptions(), { minimumFractionDigits: 2, maximumFractionDigits: 2, style: 'currency', - useGrouping: true, + useGrouping: useGroupingAuto, currency: 'ARS', }); assert.ownInclude(buildNumberFormat({numMode: 'currency'}, {locale: 'zh-TW'}).resolvedOptions(), { minimumFractionDigits: 2, maximumFractionDigits: 2, style: 'currency', - useGrouping: true, + useGrouping: useGroupingAuto, currency: 'TWD', }); assert.ownInclude(buildNumberFormat({numMode: 'currency'}, {locale: 'en-AU'}).resolvedOptions(), { minimumFractionDigits: 2, maximumFractionDigits: 2, style: 'currency', - useGrouping: true, + useGrouping: useGroupingAuto, currency: 'AUD', }); }); diff --git a/test/server/lib/DocApi.ts b/test/server/lib/DocApi.ts index 94ffb31a..b2efb6b6 100644 --- a/test/server/lib/DocApi.ts +++ b/test/server/lib/DocApi.ts @@ -3483,13 +3483,20 @@ function testDocApi(settings: { }); describe('webhooks related endpoints', async function () { - const serving: Serving = await serveSomething(app => { - app.use(express.json()); - app.post('/200', ({body}, res) => { - res.sendStatus(200); - res.end(); - }); - }, webhooksTestPort); + let serving: Serving; + before(async function () { + serving = await serveSomething(app => { + app.use(express.json()); + app.post('/200', ({body}, res) => { + res.sendStatus(200); + res.end(); + }); + }, webhooksTestPort); + }); + + after(async function () { + await serving.shutdown(); + }); /* Regression test for old _subscribe endpoint. /docs/{did}/webhooks should be used instead to subscribe @@ -4132,10 +4139,6 @@ function testDocApi(settings: { }, webhooksTestPort); }); - after(async function () { - await serving.shutdown(); - }); - describe('table endpoints', function () { before(async function () { this.timeout(30000);