Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarshan Sen <raisinten@gmail.com>2022-11-10 16:08:30 +0300
committerGitHub <noreply@github.com>2022-11-10 16:08:30 +0300
commitd55a7c34359d33057a7e4f3d75294e656bf2ff1c (patch)
tree8006389d8eca82a9c663371d6881a61676cd0109
parentf313b39d8f282f16d36fe99372e919c37864721c (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.yml3
-rw-r--r--test/fixtures/tz-version.txt1
-rw-r--r--test/parallel/test-tz-version.js28
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);