diff --git a/examples/001-simple/decompPrime/main.spec.ts b/examples/001-simple/decompPrime/main.spec.ts index 23a2876e..842cc1c9 100644 --- a/examples/001-simple/decompPrime/main.spec.ts +++ b/examples/001-simple/decompPrime/main.spec.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from 'vitest'; import fc from 'fast-check'; -import { decompPrime } from './src/decompPrime'; +import { decompPrime } from './src/decompPrime.js'; // Above this number a*b can be over 2**31-1 const MAX_INPUT = 65536; diff --git a/examples/001-simple/fibonacci/main.spec.ts b/examples/001-simple/fibonacci/main.spec.ts index 92d7de29..93c2b480 100644 --- a/examples/001-simple/fibonacci/main.spec.ts +++ b/examples/001-simple/fibonacci/main.spec.ts @@ -1,6 +1,6 @@ import { describe, it, expect } from 'vitest'; import fc from 'fast-check'; -import { fibo } from './src/fibonacci'; +import { fibo } from './src/fibonacci.js'; // The complexity of the algorithm is O(n) // As a consequence we limit the value of n to 1000 diff --git a/examples/001-simple/indexOf/main.spec.ts b/examples/001-simple/indexOf/main.spec.ts index feafddd9..b0e8d373 100644 --- a/examples/001-simple/indexOf/main.spec.ts +++ b/examples/001-simple/indexOf/main.spec.ts @@ -1,6 +1,6 @@ import { describe, it } from 'vitest'; import fc from 'fast-check'; -import { indexOf } from './src/indexOf'; +import { indexOf } from './src/indexOf.js'; describe('indexOf', () => { it('should confirm b is a substring of a + b + c', () => { diff --git a/examples/001-simple/sort/main.spec.ts b/examples/001-simple/sort/main.spec.ts index 8afea41c..256461cb 100644 --- a/examples/001-simple/sort/main.spec.ts +++ b/examples/001-simple/sort/main.spec.ts @@ -1,7 +1,7 @@ import { describe, it, expect } from 'vitest'; import fc from 'fast-check'; import _ from 'lodash'; -import { sort } from './src/sort'; +import { sort } from './src/sort.js'; describe('sort', () => { it('should have the same length as source', () => { diff --git a/examples/002-recursive/isSearchTree/arbitraries/BinarySearchTreeArbitrary.ts b/examples/002-recursive/isSearchTree/arbitraries/BinarySearchTreeArbitrary.ts index 50964ce2..50028b9e 100644 --- a/examples/002-recursive/isSearchTree/arbitraries/BinarySearchTreeArbitrary.ts +++ b/examples/002-recursive/isSearchTree/arbitraries/BinarySearchTreeArbitrary.ts @@ -1,5 +1,5 @@ import fc from 'fast-check'; -import { Tree } from '../src/isSearchTree'; +import { Tree } from '../src/isSearchTree.js'; export const binarySearchTreeWithMaxDepth = (maxDepth: number): fc.Arbitrary> => { const leaf = (minValue: number, maxValue: number): fc.Arbitrary> => diff --git a/examples/002-recursive/isSearchTree/arbitraries/BinaryTreeArbitrary.ts b/examples/002-recursive/isSearchTree/arbitraries/BinaryTreeArbitrary.ts index f6f17d67..65bcd183 100644 --- a/examples/002-recursive/isSearchTree/arbitraries/BinaryTreeArbitrary.ts +++ b/examples/002-recursive/isSearchTree/arbitraries/BinaryTreeArbitrary.ts @@ -1,5 +1,5 @@ import fc from 'fast-check'; -import { Tree } from '../src/isSearchTree'; +import { Tree } from '../src/isSearchTree.js'; export const binaryTreeWithMaxDepth = (maxDepth: number): fc.Arbitrary> => { const { tree } = fc.letrec((tie) => ({ diff --git a/examples/002-recursive/isSearchTree/main.spec.ts b/examples/002-recursive/isSearchTree/main.spec.ts index 7f0f1107..dcb9f025 100644 --- a/examples/002-recursive/isSearchTree/main.spec.ts +++ b/examples/002-recursive/isSearchTree/main.spec.ts @@ -1,9 +1,9 @@ import { describe, it } from 'vitest'; import fc from 'fast-check'; import _ from 'lodash'; -import { binarySearchTreeWithMaxDepth } from './arbitraries/BinarySearchTreeArbitrary'; -import { isSearchTree, Tree } from './src/isSearchTree'; -import { binaryTreeWithMaxDepth, binaryTreeWithoutMaxDepth } from './arbitraries/BinaryTreeArbitrary'; +import { binarySearchTreeWithMaxDepth } from './arbitraries/BinarySearchTreeArbitrary.js'; +import { isSearchTree, Tree } from './src/isSearchTree.js'; +import { binaryTreeWithMaxDepth, binaryTreeWithoutMaxDepth } from './arbitraries/BinaryTreeArbitrary.js'; describe('isSearchTree', () => { it('should always mark binary search trees as search trees', () => { diff --git a/examples/003-misc/knight/arbitraries/SpaceArbitrary.ts b/examples/003-misc/knight/arbitraries/SpaceArbitrary.ts index bc4d2e2e..1c0fc80d 100644 --- a/examples/003-misc/knight/arbitraries/SpaceArbitrary.ts +++ b/examples/003-misc/knight/arbitraries/SpaceArbitrary.ts @@ -1,5 +1,5 @@ import fc from 'fast-check'; -import { SpaceBuilder, Space } from '../src/space'; +import { SpaceBuilder, Space } from '../src/space.js'; export const SpaceArbitrary = fc .record({ diff --git a/examples/003-misc/knight/main.spec.ts b/examples/003-misc/knight/main.spec.ts index 111258ba..8e065eb6 100644 --- a/examples/003-misc/knight/main.spec.ts +++ b/examples/003-misc/knight/main.spec.ts @@ -1,8 +1,8 @@ import { describe, it, expect } from 'vitest'; import fc from 'fast-check'; -import { SpaceArbitrary } from './arbitraries/SpaceArbitrary'; -import { SpaceBuilder } from './src/space'; -import { knight } from './src/knight'; +import { SpaceArbitrary } from './arbitraries/SpaceArbitrary.js'; +import { SpaceBuilder } from './src/space.js'; +import { knight } from './src/knight.js'; // const solver = buggyKnight; // with bugs const solver = knight; diff --git a/examples/003-misc/knight/src/knight.ts b/examples/003-misc/knight/src/knight.ts index 0f4cd529..8e619bee 100644 --- a/examples/003-misc/knight/src/knight.ts +++ b/examples/003-misc/knight/src/knight.ts @@ -1,4 +1,4 @@ -import { Space } from './space'; +import { Space } from './space.js'; // This implementation is supposed to solve the CodinGame: // https://www.codingame.com/training/medium/shadows-of-the-knight-episode-1 diff --git a/examples/003-misc/mazeGenerator/main.spec.ts b/examples/003-misc/mazeGenerator/main.spec.ts index 057f74fa..cdd9e557 100644 --- a/examples/003-misc/mazeGenerator/main.spec.ts +++ b/examples/003-misc/mazeGenerator/main.spec.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from 'vitest'; -import { mazeGenerator, CellType, Point } from './src/mazeGenerator'; +import { mazeGenerator, CellType, Point } from './src/mazeGenerator.js'; import fc from 'fast-check'; import _ from 'lodash'; diff --git a/examples/003-misc/mazeGenerator/src/mazeGenerator.ts b/examples/003-misc/mazeGenerator/src/mazeGenerator.ts index e8936532..dbba99cb 100644 --- a/examples/003-misc/mazeGenerator/src/mazeGenerator.ts +++ b/examples/003-misc/mazeGenerator/src/mazeGenerator.ts @@ -1,5 +1,5 @@ // Implementation inspired from https://github.com/dubzzz/various-algorithms/blob/main/algorithms/graph/maze-generator/implem.cpp -import prand from 'pure-rand'; +import { xorshift128plus } from 'pure-rand/generator/XorShift'; import { Random } from 'fast-check'; export type Dimension = { @@ -95,7 +95,7 @@ const mazeGeneratorInternal = ( }; export const mazeGenerator = (seed: number, dim: Dimension, startPt: Point, endPt: Point): CellType[][] => { - const mrng = new Random(prand.xorshift128plus(seed)); + const mrng = new Random(xorshift128plus(seed)); while (true) { const { maze, hasPathLeadingToTheEnd } = mazeGeneratorInternal(mrng, dim, startPt, endPt); diff --git a/examples/003-misc/roman/main.spec.ts b/examples/003-misc/roman/main.spec.ts index 2d0a3978..29d649ba 100644 --- a/examples/003-misc/roman/main.spec.ts +++ b/examples/003-misc/roman/main.spec.ts @@ -1,5 +1,5 @@ import { describe, it, expect } from 'vitest'; -import { toRoman, fromRoman, MaxRoman, LettersValue, NumLetters } from './src/roman'; +import { toRoman, fromRoman, MaxRoman, LettersValue, NumLetters } from './src/roman.js'; import fc from 'fast-check'; describe('toRoman', () => { diff --git a/examples/004-stateMachine/musicPlayer/main.spec.ts b/examples/004-stateMachine/musicPlayer/main.spec.ts index dfabe989..dbb54c53 100644 --- a/examples/004-stateMachine/musicPlayer/main.spec.ts +++ b/examples/004-stateMachine/musicPlayer/main.spec.ts @@ -1,8 +1,8 @@ import { describe, it } from 'vitest'; import fc from 'fast-check'; -import { MusicPlayerModel } from './model-based/MusicPlayerModel'; -import { MusicPlayerCommands, TrackNameArb } from './model-based/MusicPlayerCommands'; -import { MusicPlayerImplem } from './src/MusicPlayer'; +import { MusicPlayerModel } from './model-based/MusicPlayerModel.js'; +import { MusicPlayerCommands, TrackNameArb } from './model-based/MusicPlayerCommands.js'; +import { MusicPlayerImplem } from './src/MusicPlayer.js'; describe('MusicPlayer', () => { it('should detect potential issues with the MusicPlayer', () => diff --git a/examples/004-stateMachine/musicPlayer/model-based/AddTrackCommand.ts b/examples/004-stateMachine/musicPlayer/model-based/AddTrackCommand.ts index f97c5fdc..542c7434 100644 --- a/examples/004-stateMachine/musicPlayer/model-based/AddTrackCommand.ts +++ b/examples/004-stateMachine/musicPlayer/model-based/AddTrackCommand.ts @@ -1,5 +1,5 @@ -import { MusicPlayerCommand, MusicPlayerModel } from './MusicPlayerModel'; -import { MusicPlayer } from '../src/MusicPlayer'; +import { MusicPlayerCommand, MusicPlayerModel } from './MusicPlayerModel.js'; +import { MusicPlayer } from '../src/MusicPlayer.js'; import * as assert from 'assert'; export class AddTrackCommand implements MusicPlayerCommand { diff --git a/examples/004-stateMachine/musicPlayer/model-based/MusicPlayerCommands.ts b/examples/004-stateMachine/musicPlayer/model-based/MusicPlayerCommands.ts index ee872a0b..6d1c82e6 100644 --- a/examples/004-stateMachine/musicPlayer/model-based/MusicPlayerCommands.ts +++ b/examples/004-stateMachine/musicPlayer/model-based/MusicPlayerCommands.ts @@ -1,8 +1,8 @@ import fc from 'fast-check'; -import { PlayCommand } from './PlayCommand'; -import { PauseCommand } from './PauseCommand'; -import { NextCommand } from './NextCommand'; -import { AddTrackCommand } from './AddTrackCommand'; +import { PlayCommand } from './PlayCommand.js'; +import { PauseCommand } from './PauseCommand.js'; +import { NextCommand } from './NextCommand.js'; +import { AddTrackCommand } from './AddTrackCommand.js'; export const TrackNameArb = fc.string({ minLength: 1 }); diff --git a/examples/004-stateMachine/musicPlayer/model-based/MusicPlayerModel.ts b/examples/004-stateMachine/musicPlayer/model-based/MusicPlayerModel.ts index 903eb92b..26b786db 100644 --- a/examples/004-stateMachine/musicPlayer/model-based/MusicPlayerModel.ts +++ b/examples/004-stateMachine/musicPlayer/model-based/MusicPlayerModel.ts @@ -1,5 +1,5 @@ import fc from 'fast-check'; -import { MusicPlayer } from '../src/MusicPlayer'; +import { MusicPlayer } from '../src/MusicPlayer.js'; export class MusicPlayerModel { isPlaying = false; diff --git a/examples/004-stateMachine/musicPlayer/model-based/NextCommand.ts b/examples/004-stateMachine/musicPlayer/model-based/NextCommand.ts index ff97a8e5..f0c8a0e9 100644 --- a/examples/004-stateMachine/musicPlayer/model-based/NextCommand.ts +++ b/examples/004-stateMachine/musicPlayer/model-based/NextCommand.ts @@ -1,5 +1,5 @@ -import { MusicPlayerCommand, MusicPlayerModel } from './MusicPlayerModel'; -import { MusicPlayer } from '../src/MusicPlayer'; +import { MusicPlayerCommand, MusicPlayerModel } from './MusicPlayerModel.js'; +import { MusicPlayer } from '../src/MusicPlayer.js'; import * as assert from 'assert'; export class NextCommand implements MusicPlayerCommand { diff --git a/examples/004-stateMachine/musicPlayer/model-based/PauseCommand.ts b/examples/004-stateMachine/musicPlayer/model-based/PauseCommand.ts index 41071285..07006e01 100644 --- a/examples/004-stateMachine/musicPlayer/model-based/PauseCommand.ts +++ b/examples/004-stateMachine/musicPlayer/model-based/PauseCommand.ts @@ -1,5 +1,5 @@ -import { MusicPlayerCommand, MusicPlayerModel } from './MusicPlayerModel'; -import { MusicPlayer } from '../src/MusicPlayer'; +import { MusicPlayerCommand, MusicPlayerModel } from './MusicPlayerModel.js'; +import { MusicPlayer } from '../src/MusicPlayer.js'; import * as assert from 'assert'; export class PauseCommand implements MusicPlayerCommand { diff --git a/examples/004-stateMachine/musicPlayer/model-based/PlayCommand.ts b/examples/004-stateMachine/musicPlayer/model-based/PlayCommand.ts index b5b32143..eb0ba321 100644 --- a/examples/004-stateMachine/musicPlayer/model-based/PlayCommand.ts +++ b/examples/004-stateMachine/musicPlayer/model-based/PlayCommand.ts @@ -1,5 +1,5 @@ -import { MusicPlayerCommand, MusicPlayerModel } from './MusicPlayerModel'; -import { MusicPlayer } from '../src/MusicPlayer'; +import { MusicPlayerCommand, MusicPlayerModel } from './MusicPlayerModel.js'; +import { MusicPlayer } from '../src/MusicPlayer.js'; import * as assert from 'assert'; export class PlayCommand implements MusicPlayerCommand { diff --git a/examples/005-race/autocomplete/main.spec.tsx b/examples/005-race/autocomplete/main.spec.tsx index e8782bbc..fba17cd1 100644 --- a/examples/005-race/autocomplete/main.spec.tsx +++ b/examples/005-race/autocomplete/main.spec.tsx @@ -5,13 +5,13 @@ import { describe, it, vi } from 'vitest'; import fc from 'fast-check'; import * as React from 'react'; -import AutocompleteField from './src/AutocompleteField'; -//import AutocompleteField from './src/AutocompleteFieldMostRecentQuery'; -//import AutocompleteField from './src/AutocompleteFieldSimple'; +import AutocompleteField from './src/AutocompleteField.js'; +//import AutocompleteField from './src/AutocompleteFieldMostRecentQuery.js'; +//import AutocompleteField from './src/AutocompleteFieldSimple.js'; import { render, cleanup, fireEvent, act, getNodeText, screen } from '@testing-library/react'; -import { search } from './src/Api'; +import { search } from './src/Api.js'; // If you want to test the behaviour of fast-check in case of a bug: const bugs = { diff --git a/examples/005-race/autocomplete/src/AutocompleteField.tsx b/examples/005-race/autocomplete/src/AutocompleteField.tsx index 5c984695..e0301479 100644 --- a/examples/005-race/autocomplete/src/AutocompleteField.tsx +++ b/examples/005-race/autocomplete/src/AutocompleteField.tsx @@ -2,7 +2,7 @@ import React from 'react'; // Injected as a props because CodeSandbox fails to provide jest.mock // So it makes such import difficult to test -//// import { search } from './Api'; +//// import { search } from './Api.js'; type Props = { enableBugUnrelatedResults?: boolean; diff --git a/examples/005-race/autocomplete/src/AutocompleteFieldMostRecentQuery.tsx b/examples/005-race/autocomplete/src/AutocompleteFieldMostRecentQuery.tsx index b68f9d0c..e165f27c 100644 --- a/examples/005-race/autocomplete/src/AutocompleteFieldMostRecentQuery.tsx +++ b/examples/005-race/autocomplete/src/AutocompleteFieldMostRecentQuery.tsx @@ -2,7 +2,7 @@ import React from 'react'; // Injected as a props because CodeSandbox fails to provide jest.mock // So it makes such import difficult to test -//// import { search } from './Api'; +//// import { search } from './Api.js'; type Props = { enableBugUnrelatedResults?: boolean; diff --git a/examples/005-race/autocomplete/src/AutocompleteFieldSimple.tsx b/examples/005-race/autocomplete/src/AutocompleteFieldSimple.tsx index 0cb6ba95..c308efdc 100644 --- a/examples/005-race/autocomplete/src/AutocompleteFieldSimple.tsx +++ b/examples/005-race/autocomplete/src/AutocompleteFieldSimple.tsx @@ -2,7 +2,7 @@ import React from 'react'; // Injected as a props because CodeSandbox fails to provide jest.mock // So it makes such import difficult to test -//// import { search } from './Api'; +//// import { search } from './Api.js'; type Props = { enableBugDoNotDiscardOldQueries?: boolean; diff --git a/examples/005-race/counter/main.spec.ts b/examples/005-race/counter/main.spec.ts index 4194ac99..fc48d64a 100644 --- a/examples/005-race/counter/main.spec.ts +++ b/examples/005-race/counter/main.spec.ts @@ -1,9 +1,9 @@ import { describe, it, expect } from 'vitest'; import fc from 'fast-check'; -import { CasCounter as Counter } from './src/CasCounter'; -//import { Counter } from './src/Counter'; -// import { SynchronizedCounter as Counter } from './src/SynchronizedCounter'; +import { CasCounter as Counter } from './src/CasCounter.js'; +//import { Counter } from './src/Counter.js'; +// import { SynchronizedCounter as Counter } from './src/SynchronizedCounter.js'; if (!fc.readConfigureGlobal()) { // Global config of Jest has been ignored, we will have a timeout after 5000ms diff --git a/examples/005-race/counter/src/CasCounter.ts b/examples/005-race/counter/src/CasCounter.ts index a3211433..d5cee976 100644 --- a/examples/005-race/counter/src/CasCounter.ts +++ b/examples/005-race/counter/src/CasCounter.ts @@ -1,4 +1,4 @@ -import { DbConnection } from './DbConnection'; +import { DbConnection } from './DbConnection.js'; export class CasCounter { constructor(private readonly db: DbConnection) {} diff --git a/examples/005-race/counter/src/Counter.ts b/examples/005-race/counter/src/Counter.ts index 552c11c5..4b94cc05 100644 --- a/examples/005-race/counter/src/Counter.ts +++ b/examples/005-race/counter/src/Counter.ts @@ -1,4 +1,4 @@ -import { DbConnection } from './DbConnection'; +import { DbConnection } from './DbConnection.js'; export class Counter { constructor(private readonly db: DbConnection) {} diff --git a/examples/005-race/counter/src/SynchronizedCounter.ts b/examples/005-race/counter/src/SynchronizedCounter.ts index 67b08b44..d98094db 100644 --- a/examples/005-race/counter/src/SynchronizedCounter.ts +++ b/examples/005-race/counter/src/SynchronizedCounter.ts @@ -1,4 +1,4 @@ -import { DbConnection } from './DbConnection'; +import { DbConnection } from './DbConnection.js'; export class SynchronizedCounter { // Hacky trick to avoid using compare-and-swap diff --git a/examples/005-race/debounced-autocomplete/main.spec.tsx b/examples/005-race/debounced-autocomplete/main.spec.tsx index ad345e7f..3102cdba 100644 --- a/examples/005-race/debounced-autocomplete/main.spec.tsx +++ b/examples/005-race/debounced-autocomplete/main.spec.tsx @@ -3,7 +3,7 @@ */ import { describe, it, beforeEach, expect, vi } from 'vitest'; import React from 'react'; -import DebouncedAutocomplete from './src/DebouncedAutocomplete'; +import DebouncedAutocomplete from './src/DebouncedAutocomplete.js'; import { act, cleanup, render, screen, fireEvent } from '@testing-library/react'; import fc from 'fast-check'; @@ -12,11 +12,6 @@ beforeEach(() => { vi.clearAllTimers(); }); -// Copied from https://github.com/testing-library/user-event/issues/586 -function escapeKeyboardInput(value: string): string { - return value.replace(/[{[]/g, '$&$&'); -} - describe('DebouncedAutocomplete', () => { it('should autocomplete queries (with mocked timers)', async () => { vi.useFakeTimers(); diff --git a/examples/005-race/dependencyTree/main.spec.ts b/examples/005-race/dependencyTree/main.spec.ts index 753f14a6..b51b75c1 100644 --- a/examples/005-race/dependencyTree/main.spec.ts +++ b/examples/005-race/dependencyTree/main.spec.ts @@ -1,7 +1,7 @@ import { describe, it } from 'vitest'; import fc from 'fast-check'; -import { dependencyTree, PackageDefinition } from './src/dependencyTree'; +import { dependencyTree, PackageDefinition } from './src/dependencyTree.js'; if (!fc.readConfigureGlobal()) { // Global config of Jest has been ignored, we will have a timeout after 5000ms diff --git a/examples/005-race/supertest/app.spec.ts b/examples/005-race/supertest/app.spec.ts index 60347031..ed8a265e 100644 --- a/examples/005-race/supertest/app.spec.ts +++ b/examples/005-race/supertest/app.spec.ts @@ -2,10 +2,9 @@ import { describe, it, expect, vi, beforeEach } from 'vitest'; import type { MockedFunction } from 'vitest'; import fc from 'fast-check'; import request from 'supertest'; -import type { User } from './src/db'; -import { app, dropDeactivatedInternal } from './src/app'; +import { app, dropDeactivatedInternal } from './src/app.js'; // import { app, dropDeactivatedInternal } from'./src/appBug'; -import * as DbMock from './src/db'; +import * as DbMock from './src/db.js'; vi.mock('./src/db'); diff --git a/examples/005-race/supertest/src/app.ts b/examples/005-race/supertest/src/app.ts index a4b21a6c..ae34f313 100644 --- a/examples/005-race/supertest/src/app.ts +++ b/examples/005-race/supertest/src/app.ts @@ -1,7 +1,7 @@ import express from 'express'; -import { getAllUsers, removeUsers } from './db'; +import { getAllUsers, removeUsers } from './db.js'; -const app = express(); +const app: express.Application = express(); let lock: Promise = Promise.resolve(); diff --git a/examples/005-race/supertest/src/appBug.ts b/examples/005-race/supertest/src/appBug.ts index 5a399b7e..4c5c5c47 100644 --- a/examples/005-race/supertest/src/appBug.ts +++ b/examples/005-race/supertest/src/appBug.ts @@ -1,7 +1,7 @@ import express from 'express'; -import { getAllUsers, removeUsers } from './db'; +import { getAllUsers, removeUsers } from './db.js'; -const app = express(); +const app: express.Application = express(); async function dropDeactivatedInternal(): Promise<{ status: string }> { const allUsers = await getAllUsers(); diff --git a/examples/005-race/todolist/main.spec.tsx b/examples/005-race/todolist/main.spec.tsx index 1acd1844..2db0b55f 100644 --- a/examples/005-race/todolist/main.spec.tsx +++ b/examples/005-race/todolist/main.spec.tsx @@ -4,14 +4,14 @@ import { describe, it, expect } from 'vitest'; import fc from 'fast-check'; import React from 'react'; -import TodoList from './src/TodoList'; +import TodoList from './src/TodoList.js'; import { render, act, cleanup } from '@testing-library/react'; -import { AddItemCommand } from './model-based/AddItemCommand'; -import { ToggleItemCommand } from './model-based/ToggleItemCommand'; -import { RemoveItemCommand } from './model-based/RemoveItemCommand'; -import { listTodos, sortTodos } from './model-based/Model'; +import { AddItemCommand } from './model-based/AddItemCommand.js'; +import { ToggleItemCommand } from './model-based/ToggleItemCommand.js'; +import { RemoveItemCommand } from './model-based/RemoveItemCommand.js'; +import { listTodos, sortTodos } from './model-based/Model.js'; describe('TodoList', () => { it('should detect potential issues with the TodoList', async () => { diff --git a/examples/005-race/todolist/model-based/AddItemCommand.ts b/examples/005-race/todolist/model-based/AddItemCommand.ts index 9135d8fe..722b4d01 100644 --- a/examples/005-race/todolist/model-based/AddItemCommand.ts +++ b/examples/005-race/todolist/model-based/AddItemCommand.ts @@ -1,7 +1,7 @@ import { expect } from 'vitest'; -import { TodolistCommand, TodolistModel, TodolistReal, listTodos, sortTodos, ExtractedTodoItem } from './Model'; +import { TodolistCommand, TodolistModel, TodolistReal, listTodos, sortTodos, ExtractedTodoItem } from './Model.js'; import { screen, act } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; +import { userEvent } from '@testing-library/user-event'; // Copied from https://github.com/testing-library/user-event/issues/586 function escapeKeyboardInput(value: string): string { @@ -11,11 +11,11 @@ function escapeKeyboardInput(value: string): string { export class AddItemCommand implements TodolistCommand { constructor(readonly label: string) {} - async check(m: TodolistModel) { + async check(m: TodolistModel): Promise { return true; } - async run(m: TodolistModel, r: TodolistReal) { + async run(m: TodolistModel, r: TodolistReal): Promise { const todosBefore = await listTodos(); await act(async () => { diff --git a/examples/005-race/todolist/model-based/Model.ts b/examples/005-race/todolist/model-based/Model.ts index 46416f7c..bc5864c0 100644 --- a/examples/005-race/todolist/model-based/Model.ts +++ b/examples/005-race/todolist/model-based/Model.ts @@ -1,6 +1,6 @@ import fc from 'fast-check'; import { screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; +import { userEvent } from '@testing-library/user-event'; export type TodolistModel = { todos: { label: string; checked: boolean }[]; diff --git a/examples/005-race/todolist/model-based/RemoveItemCommand.ts b/examples/005-race/todolist/model-based/RemoveItemCommand.ts index 7cb6090c..5ee5b96a 100644 --- a/examples/005-race/todolist/model-based/RemoveItemCommand.ts +++ b/examples/005-race/todolist/model-based/RemoveItemCommand.ts @@ -1,6 +1,6 @@ import { expect } from 'vitest'; import { act } from '@testing-library/react'; -import { TodolistCommand, TodolistModel, TodolistReal, listTodos, ExtractedTodoItem, prettyDetails } from './Model'; +import { TodolistCommand, TodolistModel, TodolistReal, listTodos, ExtractedTodoItem, prettyDetails } from './Model.js'; export class RemoveItemCommand implements TodolistCommand { private runDetails = ''; diff --git a/examples/005-race/todolist/model-based/ToggleItemCommand.ts b/examples/005-race/todolist/model-based/ToggleItemCommand.ts index 7f414888..e93b10c3 100644 --- a/examples/005-race/todolist/model-based/ToggleItemCommand.ts +++ b/examples/005-race/todolist/model-based/ToggleItemCommand.ts @@ -1,6 +1,6 @@ import { expect } from 'vitest'; import { act } from '@testing-library/react'; -import { TodolistCommand, TodolistModel, TodolistReal, listTodos, ExtractedTodoItem, prettyDetails } from './Model'; +import { TodolistCommand, TodolistModel, TodolistReal, listTodos, ExtractedTodoItem, prettyDetails } from './Model.js'; export class ToggleItemCommand implements TodolistCommand { private runDetails = ''; diff --git a/examples/005-race/userProfile/main.spec.tsx b/examples/005-race/userProfile/main.spec.tsx index 8cd1a7dd..685db7ae 100644 --- a/examples/005-race/userProfile/main.spec.tsx +++ b/examples/005-race/userProfile/main.spec.tsx @@ -5,7 +5,7 @@ import { describe, it, expect, vi } from 'vitest'; import fc from 'fast-check'; import * as React from 'react'; -import UserProfilePage from './src/UserProfilePage'; +import UserProfilePage from './src/UserProfilePage.js'; import { render, cleanup, act, screen } from '@testing-library/react'; diff --git a/examples/package.json b/examples/package.json index e68d83e3..52ad97b4 100644 --- a/examples/package.json +++ b/examples/package.json @@ -19,7 +19,7 @@ "fast-check": "workspace:*", "happy-dom": "^20.7.0", "lodash": "^4.17.23", - "pure-rand": "^7.0.0", + "pure-rand": "^7.0.1", "react": "^19.2.4", "react-dom": "^19.2.4", "supertest": "^7.2.2", diff --git a/examples/tsconfig.json b/examples/tsconfig.json index 54879b48..1205e679 100644 --- a/examples/tsconfig.json +++ b/examples/tsconfig.json @@ -1,19 +1,8 @@ { + "extends": "../tsconfig.common.json", "compilerOptions": { - "downlevelIteration": true, - "target": "es2020", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "module": "esnext", - "moduleResolution": "node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react" + "isolatedDeclarations": false, + "jsx": "react", + "lib": ["dom", "dom.iterable", "esnext"] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d37cb278..4ea05992 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -102,7 +102,7 @@ importers: specifier: ^4.17.23 version: 4.17.23 pure-rand: - specifier: ^7.0.0 + specifier: ^7.0.1 version: 7.0.1 react: specifier: ^19.2.4