Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
"tsconfig-paths-webpack-plugin": "^4.1.0",
"typescript": "^5.9.0",
"vite": "^6.4.2",
"vitest": "^2.1.9",
"vitest": "^4.1.0",
"vscode-languageserver-protocol": "^3.17.3",
"vscode-languageserver-textdocument": "^1.0.8",
"webpack": "^5.94.0",
Expand Down
8 changes: 2 additions & 6 deletions packages/prettier-plugin-liquid/vitest.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@ export default defineConfig({
test: {
exclude: [...configDefaults.exclude],
pool: 'forks',
poolOptions: {
forks: {
singleFork: true,
isolate: true,
},
},
maxWorkers: 1,
isolate: true,
globalSetup: ['./src/test/test-setup.js'],
setupFiles: ['../liquid-html-parser/build/shims.js'],
},
Expand Down
3 changes: 2 additions & 1 deletion packages/theme-check-common/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@
"devDependencies": {
"@types/line-column": "^1.0.0",
"@types/lodash": "^4.17.20",
"@types/node": "^22.18.8",
"@types/postcss-safe-parser": "^5.0.4",
"@vitest/expect": "2.1.9"
"@vitest/expect": "4.1.0"
}
}
10 changes: 0 additions & 10 deletions packages/theme-check-common/src/test/test-setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,6 @@ import { containOffense } from './contain-offense';
import { OfferFixAssertion } from './chai-offer-fix-assertion';
import { SuggestAssertion } from './chai-suggest-assertion';

// Undocumented, but chai/utils has `.eql` for deep equality checks
declare global {
export namespace Chai {
interface ChaiUtils {
/** deep equality */
eql: (a: any, b: any) => boolean;
}
}
}

/**
* Setup chai extensions
*
Expand Down
3 changes: 2 additions & 1 deletion packages/theme-graph/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
"vscode-uri": "^3.0.7"
},
"devDependencies": {
"@shopify/theme-check-node": "^3.26.0"
"@shopify/theme-check-node": "^3.26.0",
"@types/node": "^22.18.8"
}
}
3 changes: 2 additions & 1 deletion packages/theme-language-server-common/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
"vscode-uri": "^3.0.7"
},
"devDependencies": {
"@vitest/expect": "2.1.9"
"@types/node": "^22.18.8",
"@vitest/expect": "4.1.0"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { afterEach, assert, beforeEach, describe, expect, it, vi } from 'vitest'
import { DocumentOnTypeFormattingParams } from 'vscode-languageserver';
import { DocumentManager } from '../../documents';
import { OnTypeFormattingProvider } from '../OnTypeFormattingProvider';
import type { SetCursorPosition } from '../types';

const options: DocumentOnTypeFormattingParams['options'] = {
insertSpaces: true,
Expand All @@ -11,11 +12,11 @@ const options: DocumentOnTypeFormattingParams['options'] = {
describe('Module: HtmlElementAutoclosingOnTypeFormattingProvider', () => {
let documentManager: DocumentManager;
let onTypeFormattingProvider: OnTypeFormattingProvider;
let setCursorPositionSpy: ReturnType<typeof vi.fn>;
let setCursorPositionSpy: ReturnType<typeof vi.fn<SetCursorPosition>>;
const uri = 'file:///path/to/document.liquid';

beforeEach(() => {
setCursorPositionSpy = vi.fn();
setCursorPositionSpy = vi.fn<SetCursorPosition>();
documentManager = new DocumentManager();
onTypeFormattingProvider = new OnTypeFormattingProvider(documentManager, setCursorPositionSpy);
vi.useFakeTimers();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,26 @@ import {
} from 'vscode-languageserver';
import { path } from '@shopify/theme-check-common';

type MockFn = ReturnType<typeof vi.fn>;

type ProtocolConnectionSpies = {
dispose: MockFn;
end: MockFn;
hasPendingResponse: MockFn;
listen: MockFn;
onClose: MockFn;
onDispose: MockFn;
onError: MockFn;
onProgress: MockFn;
onNotification: MockFn;
onRequest: MockFn;
onUnhandledNotification: MockFn;
sendNotification: MockFn;
sendProgress: MockFn;
sendRequest: MockFn;
trace: MockFn;
};

type MockConnectionMethods = {
/** Trigger all appropriate onNotification handlers on the connection */
triggerNotification: ReturnType<typeof createConnection>['sendNotification'];
Expand All @@ -38,7 +58,7 @@ type MockConnectionMethods = {
/** Perform the textDocument/didSave notification */
saveDocument(relativePath: string): void;

spies: ReturnType<typeof protocolConnection>;
spies: ProtocolConnectionSpies;
};

/**
Expand All @@ -47,7 +67,10 @@ type MockConnectionMethods = {
*/
export type MockConnection = ReturnType<typeof createConnection> & MockConnectionMethods;

function protocolConnection(requests: EventEmitter, notifications: EventEmitter) {
function protocolConnection(
requests: EventEmitter,
notifications: EventEmitter,
): ProtocolConnectionSpies {
return {
dispose: vi.fn(),
end: vi.fn(),
Expand All @@ -68,7 +91,7 @@ function protocolConnection(requests: EventEmitter, notifications: EventEmitter)
sendProgress: vi.fn(),
sendRequest: vi.fn(),
trace: vi.fn().mockReturnValue(Promise.resolve()),
} satisfies ProtocolConnection;
};
}

export function mockConnection(rootUri: string): MockConnection {
Expand All @@ -83,7 +106,7 @@ export function mockConnection(rootUri: string): MockConnection {
const spies = protocolConnection(requests, notifications);

// Create a real "connection" with the fake communication channel
const connection = createConnection(() => spies, watchDog);
const connection = createConnection(() => spies as unknown as ProtocolConnection, watchDog);

// Create a mock way to trigger notification in our tests
const triggerNotification: MockConnection['sendNotification'] = async (...args: any[]) => {
Expand Down
Loading
Loading