Skip to content

Commit 1eb4641

Browse files
author
Joe Previte
committed
wip:
1 parent 0e4c062 commit 1eb4641

File tree

1 file changed

+28
-3
lines changed

1 file changed

+28
-3
lines changed

test/unit/node/heart.test.ts

+28-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,17 @@ import { Heart } from "../../../src/node/heart"
44
import { clean, mockLogger, tmpdir } from "../../utils/helpers"
55

66
describe("Heart", () => {
7-
function isFakeActive(resolveTo: boolean): () => Promise<boolean> {
8-
return () => new Promise((resolve) => setTimeout(() => resolve(resolveTo), 500))
7+
function isFakeActive(resolveTo: boolean, rejectMessage?: string): () => Promise<boolean> {
8+
return () =>
9+
new Promise((resolve, reject) =>
10+
setTimeout(() => {
11+
if (rejectMessage) {
12+
reject(rejectMessage)
13+
return
14+
}
15+
resolve(resolveTo)
16+
}, 100),
17+
)
918
}
1019
const testName = "heartTests"
1120
let testDir = ""
@@ -18,6 +27,7 @@ describe("Heart", () => {
1827

1928
afterEach(() => {
2029
jest.clearAllMocks()
30+
jest.restoreAllMocks()
2131
})
2232

2333
it("should write to a file when given a valid file path", async () => {
@@ -50,7 +60,22 @@ describe("Heart", () => {
5060
expect(logger.warn).toHaveBeenCalled()
5161
} catch (_e) {}
5262
heart.dispose()
53-
// expect(logger.warn).toHaveBeenCalledWith(`hi`)
63+
})
64+
65+
// TODO@jsjoeio make isActive reject, check for warning
66+
it.only("should log a warning when isActive rejects", async () => {
67+
jest.spyOn(global.Date, "now").mockImplementationOnce(() => 60002)
68+
const rejectMessage = "oh no"
69+
const heart = new Heart(`${testDir}/path.txt`, isFakeActive(false, rejectMessage))
70+
try {
71+
heart.beat()
72+
// HACK@jsjoeio - beat has some async logic but is not an async method
73+
// Therefore, we have to create an artificial wait in order to make sure
74+
// all async code has completed before asserting
75+
} catch (_e) {}
76+
await new Promise((r) => setTimeout(r, 200))
77+
expect(logger.warn).toBeCalled()
78+
heart.dispose()
5479
})
5580

5681
it("should let you know if the beat is alive", () => {

0 commit comments

Comments
 (0)