summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/specs/task/dependencies/__test__.jsonc61
-rw-r--r--tests/specs/task/dependencies/basic1.out12
-rw-r--r--tests/specs/task/dependencies/basic1/deno.json10
-rw-r--r--tests/specs/task/dependencies/basic2.out10
-rw-r--r--tests/specs/task/dependencies/basic2/deno.json13
-rw-r--r--tests/specs/task/dependencies/build1.js9
-rw-r--r--tests/specs/task/dependencies/build2.js9
-rw-r--r--tests/specs/task/dependencies/cross_package.out5
-rw-r--r--tests/specs/task/dependencies/cross_package/package1/deno.json8
-rw-r--r--tests/specs/task/dependencies/cross_package/package2/deno.json5
-rw-r--r--tests/specs/task/dependencies/cycle.out1
-rw-r--r--tests/specs/task/dependencies/cycle/a.js1
-rw-r--r--tests/specs/task/dependencies/cycle/deno.jsonc8
-rw-r--r--tests/specs/task/dependencies/cycle_2.out1
-rw-r--r--tests/specs/task/dependencies/cycle_2/a.js1
-rw-r--r--tests/specs/task/dependencies/cycle_2/b.js1
-rw-r--r--tests/specs/task/dependencies/cycle_2/deno.jsonc12
-rw-r--r--tests/specs/task/dependencies/diamond.out10
-rw-r--r--tests/specs/task/dependencies/diamond/a.js1
-rw-r--r--tests/specs/task/dependencies/diamond/b.js1
-rw-r--r--tests/specs/task/dependencies/diamond/c.js1
-rw-r--r--tests/specs/task/dependencies/diamond/d.js1
-rw-r--r--tests/specs/task/dependencies/diamond/deno.jsonc22
-rw-r--r--tests/specs/task/dependencies/diamond_big.out13
-rw-r--r--tests/specs/task/dependencies/diamond_big/a.js1
-rw-r--r--tests/specs/task/dependencies/diamond_big/b.js4
-rw-r--r--tests/specs/task/dependencies/diamond_big/c.js1
-rw-r--r--tests/specs/task/dependencies/diamond_big/d.js1
-rw-r--r--tests/specs/task/dependencies/diamond_big/deno.jsonc28
-rw-r--r--tests/specs/task/dependencies/diamond_big/e.js1
-rw-r--r--tests/specs/task/dependencies/diamond_big_list.out15
-rw-r--r--tests/specs/task/dependencies/diamond_list.out12
-rw-r--r--tests/specs/task/dependencies/run.js1
-rw-r--r--tests/specs/task/dependencies/util.js4
34 files changed, 284 insertions, 0 deletions
diff --git a/tests/specs/task/dependencies/__test__.jsonc b/tests/specs/task/dependencies/__test__.jsonc
new file mode 100644
index 000000000..38d085d79
--- /dev/null
+++ b/tests/specs/task/dependencies/__test__.jsonc
@@ -0,0 +1,61 @@
+{
+ "tests": {
+ "basic1": {
+ "cwd": "basic1",
+ "tempDir": true,
+ "args": "task run",
+ "output": "./basic1.out"
+ },
+ "basic2": {
+ "cwd": "basic2",
+ "tempDir": true,
+ "args": "task run",
+ "output": "./basic2.out"
+ },
+ "cross_package": {
+ "cwd": "cross_package/package1",
+ "tempDir": true,
+ "args": "task run",
+ "output": "./cross_package.out",
+ "exitCode": 1
+ },
+ "diamond": {
+ "cwd": "diamond",
+ "tempDir": true,
+ "args": "task a",
+ "output": "./diamond.out"
+ },
+ "diamond_list": {
+ "cwd": "diamond",
+ "tempDir": true,
+ "args": "task",
+ "output": "./diamond_list.out"
+ },
+ "diamond_big": {
+ "cwd": "diamond_big",
+ "tempDir": true,
+ "args": "task a",
+ "output": "./diamond_big.out"
+ },
+ "diamond_big_list": {
+ "cwd": "diamond_big",
+ "tempDir": true,
+ "args": "task",
+ "output": "./diamond_big_list.out"
+ },
+ "cycle": {
+ "cwd": "cycle",
+ "tempDir": true,
+ "output": "./cycle.out",
+ "args": "task a",
+ "exitCode": 1
+ },
+ "cycle_2": {
+ "cwd": "cycle_2",
+ "tempDir": true,
+ "args": "task a",
+ "output": "./cycle_2.out",
+ "exitCode": 1
+ }
+ }
+}
diff --git a/tests/specs/task/dependencies/basic1.out b/tests/specs/task/dependencies/basic1.out
new file mode 100644
index 000000000..8c31d02b4
--- /dev/null
+++ b/tests/specs/task/dependencies/basic1.out
@@ -0,0 +1,12 @@
+Task build1 deno run ../build1.js
+Task build2 deno run ../build2.js
+[UNORDERED_START]
+Starting build1
+build1 performing more work...
+build1 finished
+Starting build2
+build2 performing more work...
+build2 finished
+[UNORDERED_END]
+Task run deno run ../run.js
+run finished
diff --git a/tests/specs/task/dependencies/basic1/deno.json b/tests/specs/task/dependencies/basic1/deno.json
new file mode 100644
index 000000000..16bb9937e
--- /dev/null
+++ b/tests/specs/task/dependencies/basic1/deno.json
@@ -0,0 +1,10 @@
+{
+ "tasks": {
+ "build1": "deno run ../build1.js",
+ "build2": "deno run ../build2.js",
+ "run": {
+ "command": "deno run ../run.js",
+ "dependencies": ["build1", "build2"]
+ }
+ }
+}
diff --git a/tests/specs/task/dependencies/basic2.out b/tests/specs/task/dependencies/basic2.out
new file mode 100644
index 000000000..24ccd0eb0
--- /dev/null
+++ b/tests/specs/task/dependencies/basic2.out
@@ -0,0 +1,10 @@
+Task build1 deno run ../build1.js
+Starting build1
+build1 performing more work...
+build1 finished
+Task build2 deno run ../build2.js
+Starting build2
+build2 performing more work...
+build2 finished
+Task run deno run ../run.js
+run finished
diff --git a/tests/specs/task/dependencies/basic2/deno.json b/tests/specs/task/dependencies/basic2/deno.json
new file mode 100644
index 000000000..9a54926dd
--- /dev/null
+++ b/tests/specs/task/dependencies/basic2/deno.json
@@ -0,0 +1,13 @@
+{
+ "tasks": {
+ "build1": "deno run ../build1.js",
+ "build2": {
+ "command": "deno run ../build2.js",
+ "dependencies": ["build1"]
+ },
+ "run": {
+ "command": "deno run ../run.js",
+ "dependencies": ["build2"]
+ }
+ }
+}
diff --git a/tests/specs/task/dependencies/build1.js b/tests/specs/task/dependencies/build1.js
new file mode 100644
index 000000000..d14fb401a
--- /dev/null
+++ b/tests/specs/task/dependencies/build1.js
@@ -0,0 +1,9 @@
+import { randomTimeout } from "./util.js";
+
+console.log("Starting build1");
+
+await randomTimeout(500, 750);
+console.log("build1 performing more work...");
+await randomTimeout(500, 750);
+
+console.log("build1 finished");
diff --git a/tests/specs/task/dependencies/build2.js b/tests/specs/task/dependencies/build2.js
new file mode 100644
index 000000000..3032a099a
--- /dev/null
+++ b/tests/specs/task/dependencies/build2.js
@@ -0,0 +1,9 @@
+import { randomTimeout } from "./util.js";
+
+console.log("Starting build2");
+
+await randomTimeout(250, 750);
+console.log("build2 performing more work...");
+await randomTimeout(250, 750);
+
+console.log("build2 finished");
diff --git a/tests/specs/task/dependencies/cross_package.out b/tests/specs/task/dependencies/cross_package.out
new file mode 100644
index 000000000..a57f4de9f
--- /dev/null
+++ b/tests/specs/task/dependencies/cross_package.out
@@ -0,0 +1,5 @@
+Task not found: ../package2:run
+Available tasks:
+- run
+ deno run.js
+ depends on: ../package2:run
diff --git a/tests/specs/task/dependencies/cross_package/package1/deno.json b/tests/specs/task/dependencies/cross_package/package1/deno.json
new file mode 100644
index 000000000..6684a1e2c
--- /dev/null
+++ b/tests/specs/task/dependencies/cross_package/package1/deno.json
@@ -0,0 +1,8 @@
+{
+ "tasks": {
+ "run": {
+ "command": "deno run.js",
+ "dependencies": ["../package2:run"]
+ }
+ }
+}
diff --git a/tests/specs/task/dependencies/cross_package/package2/deno.json b/tests/specs/task/dependencies/cross_package/package2/deno.json
new file mode 100644
index 000000000..e45ec398f
--- /dev/null
+++ b/tests/specs/task/dependencies/cross_package/package2/deno.json
@@ -0,0 +1,5 @@
+{
+ "tasks": {
+ "run": "deno run.js"
+ }
+}
diff --git a/tests/specs/task/dependencies/cycle.out b/tests/specs/task/dependencies/cycle.out
new file mode 100644
index 000000000..33352b0bb
--- /dev/null
+++ b/tests/specs/task/dependencies/cycle.out
@@ -0,0 +1 @@
+Task cycle detected: a -> a
diff --git a/tests/specs/task/dependencies/cycle/a.js b/tests/specs/task/dependencies/cycle/a.js
new file mode 100644
index 000000000..688695558
--- /dev/null
+++ b/tests/specs/task/dependencies/cycle/a.js
@@ -0,0 +1 @@
+console.log("Running a");
diff --git a/tests/specs/task/dependencies/cycle/deno.jsonc b/tests/specs/task/dependencies/cycle/deno.jsonc
new file mode 100644
index 000000000..31e67488c
--- /dev/null
+++ b/tests/specs/task/dependencies/cycle/deno.jsonc
@@ -0,0 +1,8 @@
+{
+ "tasks": {
+ "a": {
+ "command": "deno run a.js",
+ "dependencies": ["a"]
+ }
+ }
+}
diff --git a/tests/specs/task/dependencies/cycle_2.out b/tests/specs/task/dependencies/cycle_2.out
new file mode 100644
index 000000000..89ef04a00
--- /dev/null
+++ b/tests/specs/task/dependencies/cycle_2.out
@@ -0,0 +1 @@
+Task cycle detected: a -> b -> a
diff --git a/tests/specs/task/dependencies/cycle_2/a.js b/tests/specs/task/dependencies/cycle_2/a.js
new file mode 100644
index 000000000..688695558
--- /dev/null
+++ b/tests/specs/task/dependencies/cycle_2/a.js
@@ -0,0 +1 @@
+console.log("Running a");
diff --git a/tests/specs/task/dependencies/cycle_2/b.js b/tests/specs/task/dependencies/cycle_2/b.js
new file mode 100644
index 000000000..ed1addf1a
--- /dev/null
+++ b/tests/specs/task/dependencies/cycle_2/b.js
@@ -0,0 +1 @@
+console.log("Running b");
diff --git a/tests/specs/task/dependencies/cycle_2/deno.jsonc b/tests/specs/task/dependencies/cycle_2/deno.jsonc
new file mode 100644
index 000000000..5a5d38ec9
--- /dev/null
+++ b/tests/specs/task/dependencies/cycle_2/deno.jsonc
@@ -0,0 +1,12 @@
+{
+ "tasks": {
+ "a": {
+ "command": "deno run a.js",
+ "dependencies": ["b"]
+ },
+ "b": {
+ "command": "deno run b.js",
+ "dependencies": ["a"]
+ }
+ }
+}
diff --git a/tests/specs/task/dependencies/diamond.out b/tests/specs/task/dependencies/diamond.out
new file mode 100644
index 000000000..75b06a35b
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond.out
@@ -0,0 +1,10 @@
+Task d deno run d.js
+Running d
+[UNORDERED_START]
+Task b deno run b.js
+Running b
+Task c deno run c.js
+Running c
+[UNORDERED_END]
+Task a deno run a.js
+Running a
diff --git a/tests/specs/task/dependencies/diamond/a.js b/tests/specs/task/dependencies/diamond/a.js
new file mode 100644
index 000000000..688695558
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond/a.js
@@ -0,0 +1 @@
+console.log("Running a");
diff --git a/tests/specs/task/dependencies/diamond/b.js b/tests/specs/task/dependencies/diamond/b.js
new file mode 100644
index 000000000..ed1addf1a
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond/b.js
@@ -0,0 +1 @@
+console.log("Running b");
diff --git a/tests/specs/task/dependencies/diamond/c.js b/tests/specs/task/dependencies/diamond/c.js
new file mode 100644
index 000000000..194d656be
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond/c.js
@@ -0,0 +1 @@
+console.log("Running c");
diff --git a/tests/specs/task/dependencies/diamond/d.js b/tests/specs/task/dependencies/diamond/d.js
new file mode 100644
index 000000000..a9f231f83
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond/d.js
@@ -0,0 +1 @@
+console.log("Running d");
diff --git a/tests/specs/task/dependencies/diamond/deno.jsonc b/tests/specs/task/dependencies/diamond/deno.jsonc
new file mode 100644
index 000000000..07d0a9177
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond/deno.jsonc
@@ -0,0 +1,22 @@
+{
+ // a
+ // / \
+ // b c
+ // \ /
+ // d
+ "tasks": {
+ "a": {
+ "command": "deno run a.js",
+ "dependencies": ["b", "c"]
+ },
+ "b": {
+ "command": "deno run b.js",
+ "dependencies": ["d"]
+ },
+ "c": {
+ "command": "deno run c.js",
+ "dependencies": ["d"]
+ },
+ "d": "deno run d.js"
+ }
+}
diff --git a/tests/specs/task/dependencies/diamond_big.out b/tests/specs/task/dependencies/diamond_big.out
new file mode 100644
index 000000000..f0b827b0d
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond_big.out
@@ -0,0 +1,13 @@
+Task e deno run e.js
+Running e
+[UNORDERED_START]
+Task b deno run b.js
+Running b
+Task d deno run d.js
+Running d
+Task c deno run c.js
+Running c
+Finished b
+[UNORDERED_END]
+Task a deno run a.js
+Running a
diff --git a/tests/specs/task/dependencies/diamond_big/a.js b/tests/specs/task/dependencies/diamond_big/a.js
new file mode 100644
index 000000000..688695558
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond_big/a.js
@@ -0,0 +1 @@
+console.log("Running a");
diff --git a/tests/specs/task/dependencies/diamond_big/b.js b/tests/specs/task/dependencies/diamond_big/b.js
new file mode 100644
index 000000000..4b00ef569
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond_big/b.js
@@ -0,0 +1,4 @@
+console.log("Running b");
+setTimeout(() => {
+ console.log("Finished b");
+}, 10);
diff --git a/tests/specs/task/dependencies/diamond_big/c.js b/tests/specs/task/dependencies/diamond_big/c.js
new file mode 100644
index 000000000..194d656be
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond_big/c.js
@@ -0,0 +1 @@
+console.log("Running c");
diff --git a/tests/specs/task/dependencies/diamond_big/d.js b/tests/specs/task/dependencies/diamond_big/d.js
new file mode 100644
index 000000000..a9f231f83
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond_big/d.js
@@ -0,0 +1 @@
+console.log("Running d");
diff --git a/tests/specs/task/dependencies/diamond_big/deno.jsonc b/tests/specs/task/dependencies/diamond_big/deno.jsonc
new file mode 100644
index 000000000..28ea7f695
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond_big/deno.jsonc
@@ -0,0 +1,28 @@
+{
+ // a
+ // / \
+ // b c
+ // | |
+ // | d
+ // \ /
+ // e
+ "tasks": {
+ "a": {
+ "command": "deno run a.js",
+ "dependencies": ["b", "c"]
+ },
+ "b": {
+ "command": "deno run b.js",
+ "dependencies": ["e"]
+ },
+ "c": {
+ "command": "deno run c.js",
+ "dependencies": ["d"]
+ },
+ "d": {
+ "command": "deno run d.js",
+ "dependencies": ["e"]
+ },
+ "e": "deno run e.js"
+ }
+}
diff --git a/tests/specs/task/dependencies/diamond_big/e.js b/tests/specs/task/dependencies/diamond_big/e.js
new file mode 100644
index 000000000..b36066c3d
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond_big/e.js
@@ -0,0 +1 @@
+console.log("Running e");
diff --git a/tests/specs/task/dependencies/diamond_big_list.out b/tests/specs/task/dependencies/diamond_big_list.out
new file mode 100644
index 000000000..c95bcd272
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond_big_list.out
@@ -0,0 +1,15 @@
+Available tasks:
+- a
+ deno run a.js
+ depends on: b, c
+- b
+ deno run b.js
+ depends on: e
+- c
+ deno run c.js
+ depends on: d
+- d
+ deno run d.js
+ depends on: e
+- e
+ deno run e.js
diff --git a/tests/specs/task/dependencies/diamond_list.out b/tests/specs/task/dependencies/diamond_list.out
new file mode 100644
index 000000000..dfd725a40
--- /dev/null
+++ b/tests/specs/task/dependencies/diamond_list.out
@@ -0,0 +1,12 @@
+Available tasks:
+- a
+ deno run a.js
+ depends on: b, c
+- b
+ deno run b.js
+ depends on: d
+- c
+ deno run c.js
+ depends on: d
+- d
+ deno run d.js
diff --git a/tests/specs/task/dependencies/run.js b/tests/specs/task/dependencies/run.js
new file mode 100644
index 000000000..f457de6ab
--- /dev/null
+++ b/tests/specs/task/dependencies/run.js
@@ -0,0 +1 @@
+console.log("run finished");
diff --git a/tests/specs/task/dependencies/util.js b/tests/specs/task/dependencies/util.js
new file mode 100644
index 000000000..9579eb9c9
--- /dev/null
+++ b/tests/specs/task/dependencies/util.js
@@ -0,0 +1,4 @@
+export async function randomTimeout(min, max) {
+ const timeout = Math.floor(Math.random() * (max - min + 1) + min);
+ return new Promise((resolve) => setTimeout(resolve, timeout));
+}