Skip to content

Commit

Permalink
refactor: use proxies to fake global objects
Browse files Browse the repository at this point in the history
  • Loading branch information
aradzie committed Mar 27, 2024
1 parent 317c116 commit 5913c1a
Show file tree
Hide file tree
Showing 19 changed files with 277 additions and 192 deletions.
33 changes: 21 additions & 12 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@
"less-loader": "^12.1.0",
"lint-staged": "^15.2.0",
"mini-css-extract-plugin": "^2.7.7",
"mockdate": "^3.0.5",
"null-loader": "^4.0.1",
"patch-package": "^8.0.0",
"postcss": "^8.4.33",
Expand Down
6 changes: 3 additions & 3 deletions packages/keybr-database/lib/model.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { newKnex } from "@keybr/config";
import { PublicId } from "@keybr/publicid";
import { fake } from "@keybr/test-env-time";
import test from "ava";
import MockDate from "mockdate";
import { ValidationError } from "objection";
import { User, UserExternalId, UserLoginRequest } from "./model.ts";
import { createSchema } from "./schema.ts";
Expand All @@ -17,11 +17,11 @@ test.beforeEach(async () => {
});

test.beforeEach(() => {
MockDate.set(now);
fake.date.set(now);
});

test.afterEach(() => {
MockDate.reset();
fake.date.reset();
});

test("validate models", (t) => {
Expand Down
4 changes: 3 additions & 1 deletion packages/keybr-database/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
"@keybr/publicid": "*",
"@keybr/rand": "*"
},
"devDependencies": {},
"devDependencies": {
"@keybr/test-env-time": "*"
},
"scripts": {
"clean": "rm -fr .types",
"compile": "tsc",
Expand Down
6 changes: 3 additions & 3 deletions packages/keybr-highscores/lib/factory.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { DataDir } from "@keybr/config";
import { Layout } from "@keybr/keyboard";
import { ResultFaker } from "@keybr/result";
import { fake } from "@keybr/test-env-time";
import { removeDir } from "@sosimple/fsx";
import test from "ava";
import MockDate from "mockdate";
import { HighScoresFactory } from "./factory.ts";
import { type HighScoresRow } from "./highscores.ts";

Expand All @@ -16,11 +16,11 @@ test.beforeEach(async () => {
});

test.beforeEach(() => {
MockDate.set(now);
fake.date.set(now);
});

test.afterEach(() => {
MockDate.reset();
fake.date.reset();
});

test.afterEach(async () => {
Expand Down
6 changes: 3 additions & 3 deletions packages/keybr-highscores/lib/highscores.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Layout } from "@keybr/keyboard";
import { fake } from "@keybr/test-env-time";
import test from "ava";
import MockDate from "mockdate";
import { HighScores, type HighScoresRow } from "./highscores.ts";

const now = new Date("2001-02-03T04:05:06Z");
Expand All @@ -18,11 +18,11 @@ const template: HighScoresRow = {
};

test.beforeEach(() => {
MockDate.set(now);
fake.date.set(now);
});

test.afterEach(() => {
MockDate.reset();
fake.date.reset();
});

test("do not insert if result is old", (t) => {
Expand Down
4 changes: 3 additions & 1 deletion packages/keybr-highscores/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@
"@keybr/keyboard": "*",
"@keybr/result": "*"
},
"devDependencies": {},
"devDependencies": {
"@keybr/test-env-time": "*"
},
"scripts": {
"clean": "rm -fr .types",
"compile": "tsc",
Expand Down
24 changes: 10 additions & 14 deletions packages/keybr-multiplayer-server/lib/room.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,8 @@ import {
type PlayerState,
} from "@keybr/multiplayer-shared";
import { type AnonymousUser } from "@keybr/pages-shared";
import { fake } from "@keybr/test-env-time";
import { Timer } from "@keybr/timer";
import {
resetFakeTimers,
runTimers,
setFakeTimers,
} from "@keybr/timer/lib/fake.ts";
import test from "ava";
import { Game } from "./game.ts";
import { Player } from "./player.ts";
Expand All @@ -26,12 +22,12 @@ import { Services } from "./services.ts";
import { FakeSession } from "./testing/fake-session.ts";

test.beforeEach(() => {
setFakeTimers();
fake.timers.set();
Timer.now = () => 0;
});

test.afterEach(() => {
resetFakeTimers();
fake.timers.reset();
Timer.now = () => 0;
});

Expand All @@ -48,13 +44,13 @@ test.serial("join and start", async (t) => {

player0.join(room);
player0.onMessage({ type: PLAYER_ANNOUNCE_ID, signature: 0xdeadbabe });
await runTimers();
await fake.timers.run();
t.is(player0.room, room);
t.is(player1.room, null);

player1.join(room);
player1.onMessage({ type: PLAYER_ANNOUNCE_ID, signature: 0xdeadbabe });
await runTimers();
await fake.timers.run();
t.is(player0.room, room);
t.is(player1.room, room);

Expand Down Expand Up @@ -301,31 +297,31 @@ test.serial("join and leave", async (t) => {

// Player 0 joins room 0.
player0.join(room0);
await runTimers();
await fake.timers.run();
t.is(player0.room, room0);
t.is(player1.room, null);

// Repeat again.
player0.join(room0);
await runTimers();
await fake.timers.run();
t.is(player0.room, room0);
t.is(player1.room, null);

// Player 1 joins room 0.
room0.join(player1);
await runTimers();
await fake.timers.run();
t.is(player0.room, room0);
t.is(player1.room, room0);

// Repeat again.
room0.join(player1);
await runTimers();
await fake.timers.run();
t.is(player0.room, room0);
t.is(player1.room, room0);

// Joint another room.
room1.join(player1);
await runTimers();
await fake.timers.run();
t.is(player0.room, room0);
t.is(player1.room, room1);

Expand Down
4 changes: 3 additions & 1 deletion packages/keybr-multiplayer-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
"@keybr/textinput": "*",
"@keybr/timer": "*"
},
"devDependencies": {},
"devDependencies": {
"@keybr/test-env-time": "*"
},
"scripts": {
"clean": "rm -fr .types",
"compile": "tsc",
Expand Down
1 change: 0 additions & 1 deletion packages/keybr-multiplayer-ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
"@keybr/textinput": "*",
"@keybr/textinput-events": "*",
"@keybr/textinput-ui": "*",
"@keybr/timer": "*",
"@keybr/widget": "*"
},
"devDependencies": {},
Expand Down
18 changes: 7 additions & 11 deletions packages/keybr-oauth/lib/token.test.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
import { fake } from "@keybr/test-env-time";
import test from "ava";
import MockDate from "mockdate";
import { AccessToken } from "./token.ts";

test.beforeEach(() => {
MockDate.reset();
});

test.afterEach(() => {
MockDate.reset();
fake.date.reset();
});

test("construct token from response", (t) => {
MockDate.set(new Date("2001-02-03T04:05:06Z"));
fake.date.set(new Date("2001-02-03T04:05:06Z"));

const token = new AccessToken({
access_token: "token",
Expand All @@ -31,7 +27,7 @@ test("construct token from response", (t) => {
});

test("check expired", (t) => {
MockDate.set(new Date("2001-01-01T00:00:00Z"));
fake.date.set(new Date("2001-01-01T00:00:00Z"));

const token = new AccessToken({
access_token: "token",
Expand All @@ -41,19 +37,19 @@ test("check expired", (t) => {

t.false(token.expired());

MockDate.set(new Date("2001-01-01T00:58:59Z"));
fake.date.set(new Date("2001-01-01T00:58:59Z"));

t.false(token.expired());
t.false(token.expired(60));
t.false(token.expired(0));

MockDate.set(new Date("2001-01-01T00:59:00Z"));
fake.date.set(new Date("2001-01-01T00:59:00Z"));

t.true(token.expired());
t.true(token.expired(60));
t.false(token.expired(0));

MockDate.set(new Date("2001-01-01T01:00:00Z"));
fake.date.set(new Date("2001-01-01T01:00:00Z"));

t.true(token.expired());
t.true(token.expired(0));
Expand Down
4 changes: 3 additions & 1 deletion packages/keybr-oauth/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
"main": "lib/index.ts",
"types": ".types/index.d.ts",
"dependencies": {},
"devDependencies": {},
"devDependencies": {
"@keybr/test-env-time": "*"
},
"scripts": {
"clean": "rm -fr .types",
"compile": "tsc",
Expand Down
Loading

0 comments on commit 5913c1a

Please sign in to comment.