Skip to content
File

Blob: tools/unix/new-test.sh

bash52 lines
1#!/usr/bin/env bash
2 
3set -euo pipefail
4 
5BAZEL_TARGET="$1"
6REPO_ROOT="$(git rev-parse --show-toplevel)"
7 
8# Sloppily convert the Bazel target to a FS path
9TEST_PATH="$REPO_ROOT/$(echo $BAZEL_TARGET | sed s_:_/_g | sed s_//__)"
10TEST_BASENAME=$(basename $TEST_PATH)
11TEST_DIRNAME=$(dirname $TEST_PATH)
12 
13cat << EOF > $TEST_PATH.wd-test
14using Workerd = import "/workerd/workerd.capnp";
15
16const unitTests :Workerd.Config = (
17 services = [
18 ( name = "$TEST_BASENAME",
19 worker = (
20 modules = [
21 (name = "worker", esModule = embed "$TEST_BASENAME.js")
22 ],
23 compatibilityFlags = ["nodejs_compat_v2"],
24 )
25 ),
26 ],
27);
28EOF
29 
30git add $TEST_PATH.wd-test
31 
32cat << EOF > $TEST_PATH.js
33export const test = {
34 test() {
35 // ...
36 },
37};
38EOF
39 
40git add $TEST_PATH.js
41 
42cat << EOF >> $TEST_DIRNAME/BUILD.bazel
43
44wd_test(
45 src = "$TEST_BASENAME.wd-test",
46 args = ["--experimental"],
47 data = ["$TEST_BASENAME.js"],
48)
49EOF
50 
51git add $TEST_DIRNAME/BUILD.bazel