mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 02:48:50 +00:00
96 lines
3.2 KiB
TypeScript
96 lines
3.2 KiB
TypeScript
import { describe } from "bun:test";
|
|
import { createTestBuilder } from "../test_builder";
|
|
const TestBuilder = createTestBuilder(import.meta.path);
|
|
|
|
describe("seq", async () => {
|
|
TestBuilder.command`seq`
|
|
.exitCode(1)
|
|
.stdout("")
|
|
.stderr("usage: seq [-w] [-f format] [-s string] [-t string] [first [incr]] last\n")
|
|
.runAsTest("prints usage");
|
|
|
|
TestBuilder.command`seq -s`
|
|
.exitCode(1)
|
|
.stdout("")
|
|
.stderr("seq: option requires an argument -- s\n")
|
|
.runAsTest("tests -s");
|
|
|
|
TestBuilder.command`seq -t`
|
|
.exitCode(1)
|
|
.stdout("")
|
|
.stderr("seq: option requires an argument -- t\n")
|
|
.runAsTest("tests -s");
|
|
|
|
TestBuilder.command`seq 0 5`.exitCode(0).stdout("0\n1\n2\n3\n4\n5\n").stderr("").runAsTest("works basic up");
|
|
|
|
TestBuilder.command`seq 5 0`.exitCode(0).stdout("5\n4\n3\n2\n1\n0\n").stderr("").runAsTest("works basic down");
|
|
|
|
TestBuilder.command`seq -s, 0 5`.exitCode(0).stdout("0,1,2,3,4,5,").stderr("").runAsTest("-s works inline");
|
|
|
|
TestBuilder.command`seq -s , 0 5`.exitCode(0).stdout("0,1,2,3,4,5,").stderr("").runAsTest("-s works separate");
|
|
|
|
TestBuilder.command`seq --separator , 0 5`
|
|
.exitCode(0)
|
|
.stdout("0,1,2,3,4,5,")
|
|
.stderr("")
|
|
.runAsTest("--separator works");
|
|
|
|
TestBuilder.command`seq -t, 0 5`.exitCode(0).stdout("0\n1\n2\n3\n4\n5\n,").stderr("").runAsTest("-t works inline");
|
|
|
|
TestBuilder.command`seq -t , 0 5`.exitCode(0).stdout("0\n1\n2\n3\n4\n5\n,").stderr("").runAsTest("-t works separate");
|
|
|
|
TestBuilder.command`seq --terminator , 0 5`
|
|
.exitCode(0)
|
|
.stdout("0\n1\n2\n3\n4\n5\n,")
|
|
.stderr("")
|
|
.runAsTest("--terminator works");
|
|
|
|
TestBuilder.command`seq -s. -t, 0 5`
|
|
.exitCode(0)
|
|
.stdout("0.1.2.3.4.5.,")
|
|
.stderr("")
|
|
.runAsTest("-s and -t work together");
|
|
|
|
TestBuilder.command`seq 0`.exitCode(0).stdout("1\n0\n").stderr("").runAsTest("seq 0");
|
|
|
|
TestBuilder.command`seq 1`.exitCode(0).stdout("1\n").stderr("").runAsTest("seq 1");
|
|
|
|
TestBuilder.command`seq 2`.exitCode(0).stdout("1\n2\n").stderr("").runAsTest("seq 2");
|
|
|
|
TestBuilder.command`seq 8 8`.exitCode(0).stdout("8\n").stderr("").runAsTest("same start and end");
|
|
|
|
TestBuilder.command`seq ab`.exitCode(1).stdout("").stderr("seq: invalid argument\n").runAsTest("invalid arg 1");
|
|
|
|
TestBuilder.command`seq 4 ab`.exitCode(1).stdout("").stderr("seq: invalid argument\n").runAsTest("invalid arg 2");
|
|
|
|
TestBuilder.command`seq 4 7 ba`.exitCode(1).stdout("").stderr("seq: invalid argument\n").runAsTest("invalid arg 3");
|
|
|
|
TestBuilder.command`seq 4 0 7`.exitCode(1).stdout("").stderr("seq: zero increment\n").runAsTest("zero increment");
|
|
|
|
TestBuilder.command`seq 4 -2 7`
|
|
.exitCode(1)
|
|
.stdout("")
|
|
.stderr("seq: needs positive increment\n")
|
|
.runAsTest("needs positive increment");
|
|
|
|
TestBuilder.command`seq 7 2 4`
|
|
.exitCode(1)
|
|
.stdout("")
|
|
.stderr("seq: needs negative decrement\n")
|
|
.runAsTest("needs negative decrement");
|
|
});
|
|
|
|
describe("seq without stdout", async () => {
|
|
TestBuilder.command`echo $(seq 0 5)`
|
|
.exitCode(0)
|
|
.stdout("0 1 2 3 4 5\n")
|
|
.stderr("")
|
|
.runAsTest("works basic up without stdout");
|
|
|
|
TestBuilder.command`echo $(seq 5 0)`
|
|
.exitCode(0)
|
|
.stdout("5 4 3 2 1 0\n")
|
|
.stderr("")
|
|
.runAsTest("works basic down without stdout");
|
|
});
|