UNPKG

@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>

80 lines (75 loc) 2.24 kB
import { Offense, SourceCodeType } from '@shopify/theme-check-common'; import { vi, expect, describe, it, beforeEach } from 'vitest'; import { Connection, Diagnostic, Range } from 'vscode-languageserver'; import { DiagnosticsManager } from './DiagnosticsManager'; import { offenseToDiagnostic } from './offenseToDiagnostic'; describe('Module: DiagnosticsManager', () => { let diagnosticsManager: DiagnosticsManager; let connection: { sendDiagnostics: ReturnType<typeof vi.fn> }; beforeEach(() => { connection = { sendDiagnostics: vi.fn(), }; diagnosticsManager = new DiagnosticsManager(connection as any as Connection); }); it('should send diagnostics on set', () => { const fileURI = 'browser:///input.liquid'; const fileVersion = 0; const offenses: Offense[] = [ { uri: 'file:///input.liquid', message: 'Test', check: 'TestCheck', start: { character: 0, line: 0, index: 0, }, end: { character: 10, line: 0, index: 10, }, severity: 0, type: SourceCodeType.LiquidHtml, }, ]; const diagnostics = offenses.map(offenseToDiagnostic); diagnosticsManager.set(fileURI, fileVersion, offenses); expect(connection.sendDiagnostics).toBeCalledWith({ uri: fileURI, version: fileVersion, diagnostics, }); }); it('should sendDiagnostics with an empty array on clear', () => { const fileURI = 'browser:///input.liquid'; const fileVersion = 0; const offenses: Offense[] = [ { uri: 'file:///input.liquid', message: 'Test', check: 'TestCheck', start: { character: 0, line: 0, index: 0, }, end: { character: 10, line: 0, index: 10, }, severity: 0, type: SourceCodeType.LiquidHtml, }, ]; diagnosticsManager.set(fileURI, fileVersion, offenses); diagnosticsManager.clear(fileURI); expect(connection.sendDiagnostics).toBeCalledTimes(2); expect(connection.sendDiagnostics).toHaveBeenLastCalledWith({ uri: fileURI, diagnostics: [], }); }); });