@shopify/theme-language-server-common
Version:
<h1 align="center" style="position: relative;" > <br> <img src="https://github.com/Shopify/theme-check-vscode/blob/main/images/shopify_glyph.png?raw=true" alt="logo" width="141" height="160"> <br> Theme Language Server </h1>
48 lines (42 loc) • 1.44 kB
text/typescript
import { expect, describe, it, beforeEach } from 'vitest';
import { CompletionsProvider } from '../completions';
import { DocumentManager } from '../documents';
import { MetafieldDefinitionMap } from '@shopify/theme-check-common';
describe('Module: CompletionItemsAssertion', () => {
let provider: CompletionsProvider;
let documentManager: DocumentManager;
beforeEach(async () => {
documentManager = new DocumentManager();
provider = new CompletionsProvider({
documentManager,
themeDocset: {
filters: async () => [],
objects: async () => [],
liquidDrops: async () => [],
tags: async () => [{ name: 'render' }],
systemTranslations: async () => ({}),
},
getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap),
});
});
it('should assert a list of labels', async () => {
await expect(provider).to.complete('{% rend', ['render']);
});
it('should assert a list of completion items', async () => {
await expect(provider).to.complete('{% rend', [
expect.objectContaining({
label: 'render',
sortText: 'render',
documentation: {
kind: 'markdown',
value: '### render',
},
insertTextFormat: 2,
kind: 14,
}),
]);
});
it('should assert an empty list', async () => {
await expect(provider).to.complete('{% something', []);
});
});