From fd3d374ac388cc0bf08b655e0a0828230e92f841 Mon Sep 17 00:00:00 2001 From: Andrew Powers Date: Sat, 12 Feb 2022 15:35:47 -0700 Subject: [PATCH] fix: test --- @apps/site/test/site.test.ts | 13 ++++++++----- @core/api/utils.ts | 5 ++++- @core/test/package.json | 1 + @core/test/setupTest.ts | 7 ++----- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/@apps/site/test/site.test.ts b/@apps/site/test/site.test.ts index 9b696daa8..f85f1c060 100644 --- a/@apps/site/test/site.test.ts +++ b/@apps/site/test/site.test.ts @@ -1,11 +1,14 @@ import { expect, it, describe } from "vitest" import { execaCommandSync, execaCommand, ExecaChildProcess } from "execa" import { chromium } from "playwright" +import { randomBetween } from "@factor/api" +const serverPort = randomBetween(1000, 9000) +const appPort = randomBetween(1000, 9000) describe("build tests", () => { it("prerenders", () => { const r = execaCommandSync( - "npm exec -w @factor/site -- factor prerender --port 3434", + `npm exec -w @factor/site -- factor prerender --port ${serverPort}`, { env: { TEST_ENV: "unit" }, timeout: 30_000, @@ -17,7 +20,7 @@ describe("build tests", () => { it("runs dev", () => { const r = execaCommandSync( - "npm exec -w @factor/site -- factor rdev --exit --port 1234 --port-app 2345", + `npm exec -w @factor/site -- factor rdev --exit --port ${serverPort} --port-app ${appPort}`, { env: { TEST_ENV: "unit" }, timeout: 20_000, @@ -25,8 +28,8 @@ describe("build tests", () => { ) expect(r.stdout).toContain("build variables") - expect(r.stdout).toContain("1234") - expect(r.stdout).toContain("2345") + expect(r.stdout).toContain(serverPort) + expect(r.stdout).toContain(appPort) expect(r.stdout).toContain("serving app") }) @@ -35,7 +38,7 @@ describe("build tests", () => { await new Promise((resolve) => { _process = execaCommand( - "npm exec -w @factor/site -- factor rdev --port 1234 --port-app 2345", + `npm exec -w @factor/site -- factor rdev --port ${serverPort} --port-app ${appPort}`, { env: { TEST_ENV: "unit" }, }, diff --git a/@core/api/utils.ts b/@core/api/utils.ts index 98b25b429..01f969a6e 100644 --- a/@core/api/utils.ts +++ b/@core/api/utils.ts @@ -110,6 +110,9 @@ export const objectId = (idLength = 16): string => { " ".repeat(idLength).replace(/./g, () => nts(Math.random() * idLength)) ) } +export const randomBetween = (min: number, max: number): number => { + return Math.floor(Math.random() * (max - min + 1) + min) +} /** * Ensure there is a slash at end of string * @param path @@ -119,7 +122,7 @@ export const ensureTrailingSlash = (path: string): string => { return path } // Sort objects in an array by a priority value that defaults to 100 -export const sortPriority = (arr: TPri): TPri => { +export const sortPriority = (arr: T): T => { if (!arr || arr.length === 0) return arr return arr.sort((a, b) => { diff --git a/@core/test/package.json b/@core/test/package.json index 4a753d350..633378535 100644 --- a/@core/test/package.json +++ b/@core/test/package.json @@ -9,6 +9,7 @@ "license": "MIT", "dependencies": { "@factor/site": "4.0.24", + "@factor/api": "4.0.24", "@factor/engine": "4.0.24", "@factor/render": "4.0.24", "@factor/server": "4.0.24", diff --git a/@core/test/setupTest.ts b/@core/test/setupTest.ts index 483f2d207..c012d525b 100644 --- a/@core/test/setupTest.ts +++ b/@core/test/setupTest.ts @@ -1,9 +1,6 @@ import { beforeAll } from "vitest" import { setup } from "@factor/server" - -const randomIntFromInterval = (min: number, max: number): number => { - return Math.floor(Math.random() * (max - min + 1) + min) -} +import { randomBetween } from "@factor/api" beforeAll(async () => { process.env.POSTGRES_URL = "http://test:test@localhost:5432/test" @@ -11,7 +8,7 @@ beforeAll(async () => { process.env.TEST_ENV = "unit" process.env.FACTOR_TOKEN_SECRET = "test" - process.env.PORT = String(randomIntFromInterval(1000, 10_000)) + process.env.PORT = String(randomBetween(1000, 10_000)) await setup({ moduleName: "@factor/site" }) })