From b0946ce052036a4e56500587b8e8e31ce39bd134 Mon Sep 17 00:00:00 2001 From: aptenodytes-forsteri Date: Mon, 4 Nov 2024 12:53:15 -0500 Subject: [PATCH] Test case for sourceMaps set in swcrc. Currently, the rules always set sourceMaps on the command line, overriding whatever is in swcrc. This can be confusing if we attempt to set sourceMaps in swcrc. --- examples/source_map_support/test/a.ts | 17 --------- .../test/{ => simple}/BUILD.bazel | 0 examples/source_map_support/test/simple/a.ts | 19 ++++++++++ .../source_map_support/test/{ => simple}/b.ts | 0 examples/source_map_support/test/swcrc/.swcrc | 3 ++ .../source_map_support/test/swcrc/BUILD.bazel | 36 +++++++++++++++++++ examples/source_map_support/test/swcrc/a.ts | 19 ++++++++++ examples/source_map_support/test/swcrc/b.ts | 3 ++ 8 files changed, 80 insertions(+), 17 deletions(-) delete mode 100644 examples/source_map_support/test/a.ts rename examples/source_map_support/test/{ => simple}/BUILD.bazel (100%) create mode 100644 examples/source_map_support/test/simple/a.ts rename examples/source_map_support/test/{ => simple}/b.ts (100%) create mode 100644 examples/source_map_support/test/swcrc/.swcrc create mode 100644 examples/source_map_support/test/swcrc/BUILD.bazel create mode 100644 examples/source_map_support/test/swcrc/a.ts create mode 100644 examples/source_map_support/test/swcrc/b.ts diff --git a/examples/source_map_support/test/a.ts b/examples/source_map_support/test/a.ts deleted file mode 100644 index 03545562..00000000 --- a/examples/source_map_support/test/a.ts +++ /dev/null @@ -1,17 +0,0 @@ -try { - require('./b')() -} catch (e) { - const assert = require('assert') - const frames = e.stack - .split('\n') - .slice(1) - .map((s) => s.trim()) - assert.deepEqual( - frames.filter((f) => f.includes('source_map_support/test/a')), - [`at Object. (examples/source_map_support/test/a.ts:2:11)`], - ) - assert.deepEqual( - frames.filter((f) => f.includes('source_map_support/test/b')), - [`at foo (examples/source_map_support/test/b.ts:2:9)`], - ) -} diff --git a/examples/source_map_support/test/BUILD.bazel b/examples/source_map_support/test/simple/BUILD.bazel similarity index 100% rename from examples/source_map_support/test/BUILD.bazel rename to examples/source_map_support/test/simple/BUILD.bazel diff --git a/examples/source_map_support/test/simple/a.ts b/examples/source_map_support/test/simple/a.ts new file mode 100644 index 00000000..fe9a1112 --- /dev/null +++ b/examples/source_map_support/test/simple/a.ts @@ -0,0 +1,19 @@ +try { + require("./b")(); +} catch (e) { + const assert = require("assert"); + const frames = e.stack + .split("\n") + .slice(1) + .map((s) => s.trim()); + assert.deepEqual( + frames.filter((f) => f.includes("source_map_support/test/simple/a")), + [ + `at Object. (examples/source_map_support/test/simple/a.ts:2:11)`, + ], + ); + assert.deepEqual( + frames.filter((f) => f.includes("source_map_support/test/simple/b")), + [`at foo (examples/source_map_support/test/simple/b.ts:2:9)`], + ); +} diff --git a/examples/source_map_support/test/b.ts b/examples/source_map_support/test/simple/b.ts similarity index 100% rename from examples/source_map_support/test/b.ts rename to examples/source_map_support/test/simple/b.ts diff --git a/examples/source_map_support/test/swcrc/.swcrc b/examples/source_map_support/test/swcrc/.swcrc new file mode 100644 index 00000000..75f05734 --- /dev/null +++ b/examples/source_map_support/test/swcrc/.swcrc @@ -0,0 +1,3 @@ +{ + "sourceMaps": "inline" +} \ No newline at end of file diff --git a/examples/source_map_support/test/swcrc/BUILD.bazel b/examples/source_map_support/test/swcrc/BUILD.bazel new file mode 100644 index 00000000..f016c122 --- /dev/null +++ b/examples/source_map_support/test/swcrc/BUILD.bazel @@ -0,0 +1,36 @@ +load("@aspect_rules_swc//swc:defs.bzl", "swc") +load("//examples/source_map_support:defs.bzl", "js_test") + +swc( + name = "compile", + srcs = [ + "a.ts", + "b.ts", + ], + swcrc = ".swcrc", +) + +js_test( + name = "stack_trace_support_test", + data = [":compile"], + entry_point = ":a.js", + target_compatible_with = select({ + # TODO(jbedard): fix CI failure, like + # https://github.com/aspect-build/rules_swc/actions/runs/4471322159/jobs/7856057314?pr=187 + "@platforms//os:windows": ["@platforms//:incompatible"], + "//conditions:default": [], + }), +) + +js_test( + name = "stack_trace_support_with_chdir_test", + chdir = "examples", + data = [":compile"], + entry_point = ":a.js", + target_compatible_with = select({ + # TODO(jbedard): fix CI failure, like + # https://github.com/aspect-build/rules_swc/actions/runs/4471322159/jobs/7856057314?pr=187 + "@platforms//os:windows": ["@platforms//:incompatible"], + "//conditions:default": [], + }), +) diff --git a/examples/source_map_support/test/swcrc/a.ts b/examples/source_map_support/test/swcrc/a.ts new file mode 100644 index 00000000..714b3033 --- /dev/null +++ b/examples/source_map_support/test/swcrc/a.ts @@ -0,0 +1,19 @@ +try { + require("./b")(); +} catch (e) { + const assert = require("assert"); + const frames = e.stack + .split("\n") + .slice(1) + .map((s) => s.trim()); + assert.deepEqual( + frames.filter((f) => f.includes("source_map_support/test/swcrc/a")), + [ + `at Object. (examples/source_map_support/test/swcrc/a.ts:2:11)`, + ], + ); + assert.deepEqual( + frames.filter((f) => f.includes("source_map_support/test/swcrc/b")), + [`at foo (examples/source_map_support/test/swcrc/b.ts:2:9)`], + ); +} diff --git a/examples/source_map_support/test/swcrc/b.ts b/examples/source_map_support/test/swcrc/b.ts new file mode 100644 index 00000000..7cb351ad --- /dev/null +++ b/examples/source_map_support/test/swcrc/b.ts @@ -0,0 +1,3 @@ +module.exports = function foo() { + throw new Error('test') +}