Skip to content

Commit

Permalink
test: add a test to ensure the correctness of timezone upgrades
Browse files Browse the repository at this point in the history
Currently, there's no way to know if a timezone upgrade PR is correct
without building and testing the change locally. This change provides a
solution for that.

Tested in RaisinTen#4.

Signed-off-by: Darshan Sen <raisinten@gmail.com>
PR-URL: #45299
Backport-PR-URL: #45521
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Fixes: #45276
  • Loading branch information
RaisinTen authored and richardlau committed Nov 23, 2022
1 parent c3a90c4 commit f13f889
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
1 change: 1 addition & 0 deletions test/fixtures/tz-version.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2022e
30 changes: 30 additions & 0 deletions test/parallel/test-tz-version.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
'use strict';

const common = require('../common');

if (!common.hasIntl) {
common.skip('missing Intl');
}

// Refs: https://github.com/nodejs/node/blob/1af63a90ca3a59ca05b3a12ad7dbea04008db7d9/configure.py#L1694-L1711
if (process.config.variables.icu_path !== 'deps/icu-small') {
// If Node.js is configured to use its built-in ICU, it uses a strict subset
// of ICU formed using `tools/icu/shrink-icu-src.py`, which is present in
// `deps/icu-small`. It is not the same as configuring the build with
// `./configure --with-intl=small-icu`. The latter only uses a subset of the
// locales, i.e., it uses the English locale, `root,en`, by default and other
// locales can also be specified using the `--with-icu-locales` option.
common.skip('not using the icu data file present in' +
' deps/icu-small/source/data/in/icudt##l.dat.bz2');
}

const fixtures = require('../common/fixtures');

// This test ensures the correctness of the automated timezone upgrade PRs.

const { strictEqual } = require('assert');
const { readFileSync } = require('fs');

const expectedVersion = readFileSync(fixtures.path('tz-version.txt'),
'utf8').trim();
strictEqual(process.versions.tz, expectedVersion);

0 comments on commit f13f889

Please sign in to comment.