From 548f196beac9924fa0513be8403dfecdf997b234 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Wed, 14 Dec 2022 12:39:33 +0000 Subject: [PATCH] refactor: update `service-worker` tests to work with ESM (#48538) * Updates circular dependency tests to use the `.mjs` outputs * Switches away from CommonJS specific `require` calls. * Simplifies the test helper logic since all browsers/NodeJS versions support `URL` as a global. PR Close #48538 --- .../service-worker/config/test/BUILD.bazel | 2 +- packages/service-worker/test/BUILD.bazel | 2 +- .../service-worker/worker/test/BUILD.bazel | 2 +- .../service-worker/worker/testing/utils.ts | 18 ++---------------- 4 files changed, 5 insertions(+), 19 deletions(-) diff --git a/packages/service-worker/config/test/BUILD.bazel b/packages/service-worker/config/test/BUILD.bazel index 1d759ecbcd5..fee25d7827b 100644 --- a/packages/service-worker/config/test/BUILD.bazel +++ b/packages/service-worker/config/test/BUILD.bazel @@ -3,7 +3,7 @@ load("//tools/circular_dependency_test:index.bzl", "circular_dependency_test") circular_dependency_test( name = "circular_deps_test", - entry_point = "angular/packages/service-worker/config/index.js", + entry_point = "angular/packages/service-worker/config/index.mjs", deps = ["//packages/service-worker/config"], ) diff --git a/packages/service-worker/test/BUILD.bazel b/packages/service-worker/test/BUILD.bazel index 12e46c2a3bd..1cd39e50b5c 100644 --- a/packages/service-worker/test/BUILD.bazel +++ b/packages/service-worker/test/BUILD.bazel @@ -3,7 +3,7 @@ load("//tools/circular_dependency_test:index.bzl", "circular_dependency_test") circular_dependency_test( name = "circular_deps_test", - entry_point = "angular/packages/service-worker/index.js", + entry_point = "angular/packages/service-worker/index.mjs", deps = ["//packages/service-worker"], ) diff --git a/packages/service-worker/worker/test/BUILD.bazel b/packages/service-worker/worker/test/BUILD.bazel index 4ef4b2b9100..b278d973e32 100644 --- a/packages/service-worker/worker/test/BUILD.bazel +++ b/packages/service-worker/worker/test/BUILD.bazel @@ -3,7 +3,7 @@ load("//tools/circular_dependency_test:index.bzl", "circular_dependency_test") circular_dependency_test( name = "circular_deps_test", - entry_point = "angular/packages/service-worker/worker/main.js", + entry_point = "angular/packages/service-worker/worker/main.mjs", deps = ["//packages/service-worker/worker:main"], ) diff --git a/packages/service-worker/worker/testing/utils.ts b/packages/service-worker/worker/testing/utils.ts index 787ab712eca..6f07555c052 100644 --- a/packages/service-worker/worker/testing/utils.ts +++ b/packages/service-worker/worker/testing/utils.ts @@ -15,19 +15,7 @@ import {NormalizedUrl} from '../src/api'; * @return Whether ServiceWorker tests can be run in the current environment. */ export function envIsSupported(): boolean { - if (typeof URL === 'function') { - return true; - } - - // If we're in a browser that doesn't support URL at this point, don't go any further - // since browser builds use requirejs which will fail on the `require` call below. - if (typeof window !== 'undefined' && window) { - return false; - } - - // In older Node.js versions, the `URL` global does not exist. We can use `url` instead. - const url = (typeof require === 'function') && require('url'); - return url && (typeof url.parse === 'function') && (typeof url.resolve === 'function'); + return typeof URL === 'function'; } /** @@ -55,9 +43,7 @@ export function normalizeUrl(url: string, relativeTo: string): NormalizedUrl { */ export function parseUrl( url: string, relativeTo?: string): {origin: string, path: string, search: string} { - const parsedUrl: URL = (typeof URL === 'function') ? - (!relativeTo ? new URL(url) : new URL(url, relativeTo)) : - require('url').parse(require('url').resolve(relativeTo || '', url)); + const parsedUrl: URL = (!relativeTo ? new URL(url) : new URL(url, relativeTo)); return { origin: parsedUrl.origin || `${parsedUrl.protocol}//${parsedUrl.host}`,