From abfd3ad3feb8f59b6a8b334e3f7eb56814cb5a80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Oliva?= Date: Sun, 16 Jul 2023 23:20:04 +0200 Subject: [PATCH] migrate to vitest --- packages/context-state/package.json | 3 ++- packages/context-state/src/combineStates.test.ts | 11 ++++++----- packages/context-state/src/create-signal.test.ts | 13 +++++++------ .../context-state/src/internal/state-instance.ts | 2 +- packages/context-state/src/route-state.test.ts | 5 +++-- packages/context-state/src/route-state.ts | 3 +++ packages/context-state/src/subinstance.test.ts | 5 +++-- packages/context-state/src/substate.test.ts | 15 ++++++++------- 8 files changed, 33 insertions(+), 24 deletions(-) diff --git a/packages/context-state/package.json b/packages/context-state/package.json index 59f50dd..d9e7d34 100644 --- a/packages/context-state/package.json +++ b/packages/context-state/package.json @@ -31,7 +31,8 @@ "build:cjs:dev": "node cjsBuild.js", "build:cjs:prod": "node cjsBuild.js --prod", "build:ts": "tsc -p ./tsconfig-build.json --outDir ./dist --skipLibCheck --emitDeclarationOnly", - "test": "jest --coverage", + "test": "vitest run --coverage", + "test:watch": "vitest watch", "lint": "prettier --check README.md \"src/**/*.{js,jsx,ts,tsx,json,md}\"", "format": "prettier --write README.md \"src/**/*.{js,jsx,ts,tsx,json,md}\"", "prepack": "npm run build" diff --git a/packages/context-state/src/combineStates.test.ts b/packages/context-state/src/combineStates.test.ts index 8a66ccd..a68f330 100644 --- a/packages/context-state/src/combineStates.test.ts +++ b/packages/context-state/src/combineStates.test.ts @@ -1,10 +1,11 @@ -import { createRoot } from "./create-root" import { BehaviorSubject, of, Subject } from "rxjs" -import { substate } from "./substate" +import { describe, expect, it, vi } from "vitest" import { combineStates } from "./combineStates" -import { StateNode } from "./types" +import { createRoot } from "./create-root" import { routeState } from "./route-state" +import { substate } from "./substate" import { instanceNode } from "./test-utils/instance-node" +import { StateNode } from "./types" describe("combineStates", () => { it("combines state nodes into one", () => { @@ -126,8 +127,8 @@ describe("combineStates", () => { const promise = combined.getValue({ root: "" }) expect(promise).toBeInstanceOf(Promise) - const next = jest.fn() - const complete = jest.fn() + const next = vi.fn() + const complete = vi.fn() combined.getState$({ root: "" }).subscribe({ next, complete }) expect(next).not.toHaveBeenCalled() expect(complete).not.toHaveBeenCalled() diff --git a/packages/context-state/src/create-signal.test.ts b/packages/context-state/src/create-signal.test.ts index a71638d..e3bdbeb 100644 --- a/packages/context-state/src/create-signal.test.ts +++ b/packages/context-state/src/create-signal.test.ts @@ -1,3 +1,4 @@ +import { describe, expect, it, vi } from "vitest" import { createSignal } from "./create-signal" import { createRoot } from "./create-root" @@ -8,7 +9,7 @@ describe("createSignal", () => { root.run() - const next = jest.fn() + const next = vi.fn() signal.getSignal$().subscribe(next) expect(next).not.toBeCalled() @@ -25,12 +26,12 @@ describe("createSignal", () => { root.run() - const nextA = jest.fn() + const nextA = vi.fn() signal.getSignal$().subscribe(nextA) signal.push(3) - const nextB = jest.fn() + const nextB = vi.fn() signal.getSignal$().subscribe(nextB) signal.push(4) @@ -55,10 +56,10 @@ describe("createSignal", () => { root.run("a") root.run("b") - const nextA = jest.fn() + const nextA = vi.fn() signal.getSignal$({ gameId: "a" }).subscribe(nextA) - const nextB = jest.fn() + const nextB = vi.fn() signal.getSignal$({ gameId: "b" }).subscribe(nextB) signal.push({ gameId: "a" }, 1) @@ -98,7 +99,7 @@ describe("createSignal", () => { root.run() const signal = createSignal(root) - const next = jest.fn() + const next = vi.fn() signal.getSignal$().subscribe(next) expect(next).not.toBeCalled() diff --git a/packages/context-state/src/internal/state-instance.ts b/packages/context-state/src/internal/state-instance.ts index f4ec610..8c761c1 100644 --- a/packages/context-state/src/internal/state-instance.ts +++ b/packages/context-state/src/internal/state-instance.ts @@ -2,9 +2,9 @@ import { Observable, Subject, Subscription, + defer, filter, startWith, - defer, } from "rxjs" import type { KeysBaseType } from "../types" import { EMPTY_VALUE } from "./empty-value" diff --git a/packages/context-state/src/route-state.test.ts b/packages/context-state/src/route-state.test.ts index c84d61a..712580b 100644 --- a/packages/context-state/src/route-state.test.ts +++ b/packages/context-state/src/route-state.test.ts @@ -1,4 +1,5 @@ import { Observable, of, Subject } from "rxjs" +import { describe, expect, it, vi } from "vitest" import { createRoot } from "./create-root" import { routeState } from "./route-state" import { substate } from "./substate" @@ -65,7 +66,7 @@ describe("routeState", () => { const [key] = routeState(parent, { a: null, b: null }, (v) => v) root.run() - const next = jest.fn() + const next = vi.fn() key.getState$().subscribe({ next, }) @@ -88,7 +89,7 @@ describe("routeState", () => { const [key] = routeState(parent, { a: null, b: null }, () => "a") root.run() - const next = jest.fn() + const next = vi.fn() key.getState$().subscribe({ next }) parentSource.next(1) diff --git a/packages/context-state/src/route-state.ts b/packages/context-state/src/route-state.ts index 504caa3..f1abc88 100644 --- a/packages/context-state/src/route-state.ts +++ b/packages/context-state/src/route-state.ts @@ -65,6 +65,9 @@ export const routeState = < node.activateInstance(instanceKey) previousNode = node }, + error: () => { + // TODO any implication here? How will we recover? + }, }) } const removeInstanceRoutes = (instanceKey: K) => { diff --git a/packages/context-state/src/subinstance.test.ts b/packages/context-state/src/subinstance.test.ts index f335279..4a486e4 100644 --- a/packages/context-state/src/subinstance.test.ts +++ b/packages/context-state/src/subinstance.test.ts @@ -1,4 +1,5 @@ import { NEVER, Subject, filter, map, of, startWith } from "rxjs" +import { describe, expect, it, vi } from "vitest" import { InstanceUpdate, createRoot, subinstance, substate } from "./" describe("subinstance", () => { @@ -78,7 +79,7 @@ describe("subinstance", () => { it("ignores adding duplicate key values", () => { const root = createRoot() const instance$ = new Subject>() - const instanceFn = jest.fn((id: string) => of(id)) + const instanceFn = vi.fn((id: string) => of(id)) const [instanceNode, keys] = subinstance( root, "keyName", @@ -93,7 +94,7 @@ describe("subinstance", () => { expect(instanceNode.getValue({ keyName: "a" })).toEqual("a") expect(instanceFn).toHaveBeenCalledTimes(1) - const keysObserver = jest.fn() + const keysObserver = vi.fn() keys.getState$().subscribe(keysObserver) expect(keysObserver).toHaveBeenCalledTimes(1) diff --git a/packages/context-state/src/substate.test.ts b/packages/context-state/src/substate.test.ts index 1fbb6f0..ee5a6d6 100644 --- a/packages/context-state/src/substate.test.ts +++ b/packages/context-state/src/substate.test.ts @@ -11,6 +11,7 @@ import { throwError, withLatestFrom, } from "rxjs" +import { describe, expect, it, vi } from "vitest" import { createRoot } from "./create-root" import { createSignal } from "./create-signal" import { routeState } from "./route-state" @@ -431,7 +432,7 @@ describe("subState", () => { const subNode = substate(contextNode, () => source$) root.run() - const complete = jest.fn() + const complete = vi.fn() subNode.getState$({ root: "" }).subscribe({ complete }) contextSource$.next(1) @@ -458,7 +459,7 @@ describe("subState", () => { source$.next(1) contextSource$.next(2) - const next = jest.fn() + const next = vi.fn() subNode.getState$({ root: "" }).subscribe({ next }) expect(next).not.toHaveBeenCalled() @@ -474,7 +475,7 @@ describe("subState", () => { contextSource$.next(1) source$.next(1) - const next = jest.fn() + const next = vi.fn() subNode.getState$().subscribe({ complete: () => { subNode.getState$().subscribe({ next }) @@ -499,7 +500,7 @@ describe("subState", () => { contextSource$.next(1) source$.next(1) - const complete = jest.fn() + const complete = vi.fn() subNode.getState$({ root: "" }).subscribe({ complete }) contextSource$.next(1) @@ -516,7 +517,7 @@ describe("subState", () => { contextSource$.next(1) - const complete = jest.fn() + const complete = vi.fn() subNode.getState$({ root: "" }).subscribe({ complete }) contextSource$.next(2) @@ -536,7 +537,7 @@ describe("subState", () => { expect(subNodeB.getValue()).toEqual(1) - const complete = jest.fn() + const complete = vi.fn() subNodeB.getState$({ root: "" }).subscribe({ complete }) contextSource$.next(2) @@ -564,7 +565,7 @@ describe("subState", () => { it("cleans up after self-referencing observables", () => { const root = createRoot() const signal = createSignal(root) - const teardown = jest.fn() + const teardown = vi.fn() const nodeA = substate( root, (_, getState$) =>