Add unit test
This commit is contained in:
parent
a2894d48b9
commit
a0a0c579cc
3 changed files with 37 additions and 0 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,3 +1,5 @@
|
|||
deno.d.ts
|
||||
.vscode
|
||||
.local
|
||||
.output
|
||||
web/*.js
|
||||
|
|
6
deps.testing.ts
Normal file
6
deps.testing.ts
Normal file
|
@ -0,0 +1,6 @@
|
|||
export {
|
||||
describe,
|
||||
expect,
|
||||
it,
|
||||
mockfn,
|
||||
} from "https://js.thunderk.net/testing@1.0.0/mod.ts";
|
|
@ -0,0 +1,29 @@
|
|||
import { Sys } from "../deps.ts";
|
||||
import { describe, expect, it, mockfn } from "../deps.testing.ts";
|
||||
import { Runner } from "./run.ts";
|
||||
|
||||
describe(Runner, () => {
|
||||
it("works with a file timestamp", async () => {
|
||||
async function check(stat: any, expected: boolean) {
|
||||
const sys = {
|
||||
stat: mockfn(() => stat),
|
||||
writeTextFile: mockfn(),
|
||||
};
|
||||
const runner = new Runner(sys as typeof Sys);
|
||||
const path = "/tmp/thunderk-run-run-test.stamp";
|
||||
|
||||
const result = await runner.checkStamp("run-test");
|
||||
expect(result).toBe(expected);
|
||||
expect(sys.stat).toHaveBeenLastCalledWith(path);
|
||||
if (expected) {
|
||||
expect(sys.writeTextFile).not.toHaveBeenCalled();
|
||||
} else {
|
||||
expect(sys.writeTextFile).toHaveBeenLastCalledWith(path, "");
|
||||
}
|
||||
}
|
||||
|
||||
await check({ isFile: false }, false);
|
||||
await check({ isFile: true, mtime: new Date(2000, 1, 1) }, false);
|
||||
await check({ isFile: true, mtime: new Date() }, true);
|
||||
});
|
||||
});
|
Loading…
Reference in a new issue