diff options
author | Darshan Sen <raisinten@gmail.com> | 2022-11-10 16:08:30 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-10 16:08:30 +0300 |
commit | d55a7c34359d33057a7e4f3d75294e656bf2ff1c (patch) | |
tree | 8006389d8eca82a9c663371d6881a61676cd0109 | |
parent | f313b39d8f282f16d36fe99372e919c37864721c (diff) |
test: add a test to ensure the correctness of timezone upgrades
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 https://github.com/RaisinTen/node/pull/4.
Signed-off-by: Darshan Sen <raisinten@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/45299
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
-rw-r--r-- | .github/workflows/timezone-update.yml | 3 | ||||
-rw-r--r-- | test/fixtures/tz-version.txt | 1 | ||||
-rw-r--r-- | test/parallel/test-tz-version.js | 28 |
3 files changed, 32 insertions, 0 deletions
diff --git a/.github/workflows/timezone-update.yml b/.github/workflows/timezone-update.yml index cebf43223e1..27cbfd2946a 100644 --- a/.github/workflows/timezone-update.yml +++ b/.github/workflows/timezone-update.yml @@ -36,6 +36,9 @@ jobs: - run: ./tools/update-timezone.mjs + - name: Update the expected timezone version in test + run: echo "${{ env.new_version }}" > test/fixtures/tz-version.txt + - name: Open Pull Request uses: gr2m/create-or-update-pull-request-action@dc1726cbf4dd3ce766af4ec29cfb660e0125e8ee # Create a PR or update the Action's existing PR env: diff --git a/test/fixtures/tz-version.txt b/test/fixtures/tz-version.txt new file mode 100644 index 00000000000..13ad873c89c --- /dev/null +++ b/test/fixtures/tz-version.txt @@ -0,0 +1 @@ +2022e diff --git a/test/parallel/test-tz-version.js b/test/parallel/test-tz-version.js new file mode 100644 index 00000000000..6e4b14e1ac1 --- /dev/null +++ b/test/parallel/test-tz-version.js @@ -0,0 +1,28 @@ +'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); |