Skip to content

Instantly share code, notes, and snippets.

@alexeagle
Created December 15, 2021 14:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexeagle/4c08e4f06c6dacb3f9ea1e764b99f860 to your computer and use it in GitHub Desktop.
Save alexeagle/4c08e4f06c6dacb3f9ea1e764b99f860 to your computer and use it in GitHub Desktop.
load("@bazel_skylib//rules:write_file.bzl", "write_file")
load("@bazel_skylib//rules:diff_test.bzl", "diff_test")
# Trivial test fixture: a nodejs program that writes to a file
write_file(
name = "js",
out = "some.js",
content = ["require('fs').writeFileSync(process.argv[2], process.version + '\\n')"],
)
write_file(
name = "write_expected",
out = "expected",
content = ["v16.12.0", ""],
)
genrule(
name = "use_my_node_toolchain",
srcs = ["some.js"],
outs = ["actual1"],
cmd = "$(NODE_PATH) $(execpath some.js) $@",
toolchains = ["@testnode_toolchains//:resolved_toolchain"],
tools = ["@testnode_toolchains//:resolved_toolchain"],
)
diff_test(
name = "test_genrule",
file1 = "expected",
file2 = "actual1",
)
genrule(
name = "use_default_node_toolchain",
srcs = ["some.js"],
outs = ["actual2"],
cmd = "$(NODE_PATH) $(execpath some.js) $@",
toolchains = ["@node_toolchains//:resolved_toolchain"],
tools = ["@node_toolchains//:resolved_toolchain"],
)
write_file(
name = "write_expected2",
out = "expected2",
content = ["v16.13.0", ""],
)
diff_test(
name = "test_genrule2",
file1 = "expected2",
file2 = "actual2",
)
""
module(
name = "test",
version = "0.0.0",
toolchains_to_register = [
"@node_toolchains//:all",
"@testnode_toolchains//:all",
],
)
bazel_dep(name = "bazel_skylib", version = "1.0.3")
bazel_dep(name = "rules_nodejs", version = "4.4.6")
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
node.toolchain(name = "testnode", node_version = "16.12.0")
use_repo(node, "testnode_toolchains")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment