Radish alpha
r
Radicle web interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
Remove sinon fake timers out of the window object
Sebastian Martinez committed 1 year ago
commit 13a6925bcf02136026f364fb7750829142624a9a
parent 7833dd2ffe9e6d8b63756ef5f491efdde94ce5ea
12 files changed +78 -97
modified package-lock.json
@@ -31,7 +31,6 @@
      },
      "devDependencies": {
        "@playwright/test": "^1.42.1",
-
        "@sinonjs/fake-timers": "^11.2.2",
        "@sveltejs/vite-plugin-svelte": "^3.0.2",
        "@tsconfig/svelte": "^5.0.3",
        "@types/dompurify": "^3.0.5",
@@ -40,7 +39,6 @@
        "@types/md5": "^2.3.5",
        "@types/node": "^20.11.30",
        "@types/sinon": "^17.0.3",
-
        "@types/sinonjs__fake-timers": "^8.1.5",
        "@types/wait-on": "^5.3.4",
        "@typescript-eslint/eslint-plugin": "^7.4.0",
        "chalk": "^5.3.0",
modified package.json
@@ -17,7 +17,6 @@
  },
  "devDependencies": {
    "@playwright/test": "^1.42.1",
-
    "@sinonjs/fake-timers": "^11.2.2",
    "@sveltejs/vite-plugin-svelte": "^3.0.2",
    "@tsconfig/svelte": "^5.0.3",
    "@types/dompurify": "^3.0.5",
@@ -26,7 +25,6 @@
    "@types/md5": "^2.3.5",
    "@types/node": "^20.11.30",
    "@types/sinon": "^17.0.3",
-
    "@types/sinonjs__fake-timers": "^8.1.5",
    "@types/wait-on": "^5.3.4",
    "@typescript-eslint/eslint-plugin": "^7.4.0",
    "chalk": "^5.3.0",
modified src/index.ts
@@ -1,12 +1,3 @@
-
import * as FakeTimers from "@sinonjs/fake-timers";
-

-
if (window.PLAYWRIGHT && window.initializeTestStubs !== undefined) {
-
  window.e2eTestStubs = {
-
    FakeTimers: FakeTimers,
-
  };
-
  window.initializeTestStubs();
-
}
-

import App from "@app/App.svelte";

const app = new App({
modified tests/e2e/project/commit.spec.ts
@@ -6,6 +6,7 @@ import {
  sourceBrowsingUrl,
  test,
} from "@tests/support/fixtures.js";
+
import sinon from "sinon";

const commitUrl = `${sourceBrowsingUrl}/commits/${bobHead}`;

@@ -21,13 +22,11 @@ test("navigation from commit list", async ({ page }) => {

test("relative timestamps", async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("December 21 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("December 21 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });
  await page.goto(commitUrl);
  await expect(
modified tests/e2e/project/commits.spec.ts
@@ -7,6 +7,7 @@ import {
  test,
} from "@tests/support/fixtures.js";
import { createProject } from "@tests/support/project";
+
import sinon from "sinon";

test("peer and branch switching", async ({ page }) => {
  await page.goto(sourceBrowsingUrl);
@@ -102,13 +103,11 @@ test("expand commit message", async ({ page }) => {

test("relative timestamps", async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("December 21 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("December 21 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });

  await page.goto(sourceBrowsingUrl);
modified tests/support/fixtures.ts
@@ -1,8 +1,10 @@
/* eslint-disable @typescript-eslint/naming-convention */
import type * as Stream from "node:stream";
+

import * as Fs from "node:fs/promises";
import * as Path from "node:path";
import assert from "node:assert";
+
import { fileURLToPath } from "node:url";
import { test as base, expect } from "@playwright/test";

import * as Process from "./process.js";
@@ -33,6 +35,14 @@ export const test = base.extend<{
  forAllTests: [
    async ({ customAppConfig, outputLog, page }, use) => {
      const browserLabel = logLabel.logPrefix("browser");
+
      let sinonPath = fileURLToPath(import.meta.resolve("sinon"));
+
      // The exports in sinon-esm.js mess up our test pipeline
+
      if (sinonPath.endsWith("-esm.js")) {
+
        sinonPath = sinonPath.replace("-esm", "");
+
      }
+
      await page.addInitScript({
+
        path: sinonPath,
+
      });
      page.on("console", msg => {
        // Ignore common console logs that we don't care about.
        if (
modified tests/visual/desktop/cob.spec.ts
@@ -1,14 +1,13 @@
import { test, expect, cobUrl } from "@tests/support/fixtures.js";
+
import sinon from "sinon";

test.beforeEach(async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("November 24 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("November 24 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });
});

modified tests/visual/desktop/landingPage.spec.ts
@@ -3,16 +3,15 @@ import { test, expect, appConfigWithFixture } from "@tests/support/fixtures.js";
test.use({
  customAppConfig: true,
});
+
import sinon from "sinon";

test("pinned projects", async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("November 24 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("November 24 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });

  await page.addInitScript(appConfigWithFixture);
@@ -22,13 +21,11 @@ test("pinned projects", async ({ page }) => {

test("load error", async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("November 24 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("November 24 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });

  await page.route(
modified tests/visual/desktop/node.spec.ts
@@ -1,14 +1,13 @@
import { test, expect } from "@tests/support/fixtures.js";
+
import sinon from "sinon";

test("node page", async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("November 24 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("November 24 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });

  await page.goto("/nodes/radicle.local", { waitUntil: "networkidle" });
modified tests/visual/desktop/project.spec.ts
@@ -7,6 +7,7 @@ import {
  markdownUrl,
  sourceBrowsingRid,
} from "@tests/support/fixtures.js";
+
import sinon from "sinon";

test("source page", async ({ page }) => {
  await page.goto(sourceBrowsingUrl, { waitUntil: "networkidle" });
@@ -15,13 +16,11 @@ test("source page", async ({ page }) => {

test("history page", async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("November 24 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("November 24 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });

  await page.goto(
@@ -36,13 +35,11 @@ test("history page", async ({ page }) => {

test("commit page", async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("November 24 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("November 24 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });

  await page.goto(
@@ -56,13 +53,11 @@ test("commit page", async ({ page }) => {

test("diff selection", async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("November 24 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("November 24 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });

  await page.goto(`${cobUrl}/patches`);
modified tests/visual/mobile/cob.spec.ts
@@ -1,14 +1,13 @@
import { test, expect, cobUrl } from "@tests/support/fixtures.js";
+
import sinon from "sinon";

test.beforeEach(async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("November 24 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("November 24 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });
});

modified tests/visual/mobile/project.spec.ts
@@ -4,6 +4,7 @@ import {
  sourceBrowsingUrl,
  test,
} from "@tests/support/fixtures.js";
+
import sinon from "sinon";

test("source tree page", async ({ page }) => {
  await page.goto(sourceBrowsingUrl, { waitUntil: "networkidle" });
@@ -12,13 +13,11 @@ test("source tree page", async ({ page }) => {

test("commits page", async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("November 24 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("November 24 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });

  await page.goto(
@@ -33,13 +32,11 @@ test("commits page", async ({ page }) => {

test("commit page", async ({ page }) => {
  await page.addInitScript(() => {
-
    window.initializeTestStubs = () => {
-
      window.e2eTestStubs.FakeTimers.install({
-
        now: new Date("November 24 2022 12:00:00").valueOf(),
-
        shouldClearNativeTimers: true,
-
        shouldAdvanceTime: false,
-
      });
-
    };
+
    sinon.useFakeTimers({
+
      now: new Date("November 24 2022 12:00:00").valueOf(),
+
      shouldClearNativeTimers: true,
+
      shouldAdvanceTime: false,
+
    });
  });

  await page.goto(