@prisma/language-server
Version:
Prisma Language Server
112 lines • 5.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
const MessageHandler_1 = require("../lib/MessageHandler");
const helper_1 = require("./helper");
const vitest_1 = require("vitest");
require("../lib/prisma-schema-wasm/error/wasm");
const Schema_1 = require("../lib/Schema");
(0, vitest_1.describe)('Artificial Panics', () => {
(0, vitest_1.afterEach)(() => {
vitest_1.vi.unstubAllEnvs();
});
const getFixturePath = (testName) => `./artificial-panic/${testName}.prisma`;
(0, vitest_1.test)('code actions', () => {
const fixturePath = getFixturePath('schema');
const document = (0, helper_1.getTextDocument)(fixturePath);
const params = {
textDocument: document,
range: {
start: { line: 0, character: 0 },
end: { line: 0, character: 0 },
},
context: {
diagnostics: [
{
range: {
start: { line: 0, character: 0 },
end: { line: 0, character: 0 },
},
message: 'dx msg',
},
],
},
};
vitest_1.vi.stubEnv('FORCE_PANIC_PRISMA_SCHEMA', '1');
const onError = vitest_1.vi.fn();
(0, MessageHandler_1.handleCodeActions)(Schema_1.PrismaSchema.singleFile(document), document, params, onError);
(0, vitest_1.expect)(onError).toBeCalledTimes(1);
(0, vitest_1.expect)(onError).toBeCalledWith(vitest_1.expect.any(String));
});
(0, vitest_1.test)('formatter', () => {
const fixturePath = getFixturePath('schema');
const document = (0, helper_1.getTextDocument)(fixturePath);
const params = {
textDocument: document,
options: {
tabSize: 2,
insertSpaces: true,
},
};
vitest_1.vi.stubEnv('FORCE_PANIC_PRISMA_SCHEMA', '1');
const onError = vitest_1.vi.fn();
(0, MessageHandler_1.handleDocumentFormatting)(Schema_1.PrismaSchema.singleFile(document), document, params, onError);
(0, vitest_1.expect)(onError).toBeCalledTimes(1);
(0, vitest_1.expect)(onError).toBeCalledWith(vitest_1.expect.any(String));
});
(0, vitest_1.test)('linting', () => {
const fixturePath = getFixturePath('schema');
const document = (0, helper_1.getTextDocument)(fixturePath);
vitest_1.vi.stubEnv('FORCE_PANIC_PRISMA_SCHEMA', '1');
const onError = vitest_1.vi.fn();
(0, MessageHandler_1.handleDiagnosticsRequest)(Schema_1.PrismaSchema.singleFile(document), onError);
(0, vitest_1.expect)(onError).toBeCalledTimes(1);
(0, vitest_1.expect)(onError).toBeCalledWith(vitest_1.expect.any(String));
});
(0, vitest_1.test)('preview features', () => {
const fixturePath = getFixturePath('schema');
let document = (0, helper_1.getTextDocument)(fixturePath);
const schema = document.getText();
const position = (0, helper_1.findCursorPosition)(schema);
document = vscode_languageserver_textdocument_1.TextDocument.create('./artificial-panic/schema.prisma', 'prisma', 1, schema.replace(helper_1.CURSOR_CHARACTER, ''));
const params = {
textDocument: document,
position,
};
vitest_1.vi.stubEnv('FORCE_PANIC_PRISMA_SCHEMA_LOCAL', '1');
const onError = vitest_1.vi.fn();
(0, MessageHandler_1.handleCompletionRequest)(Schema_1.PrismaSchema.singleFile(document), document, params, onError);
(0, vitest_1.expect)(onError).toBeCalledTimes(1);
(0, vitest_1.expect)(onError).toBeCalledWith(vitest_1.expect.any(String));
});
(0, vitest_1.test)('native types', () => {
const fixturePath = getFixturePath('native-types');
let document = (0, helper_1.getTextDocument)(fixturePath);
const schema = document.getText();
const position = (0, helper_1.findCursorPosition)(schema);
document = vscode_languageserver_textdocument_1.TextDocument.create('./artificial-panic/native-types.prisma', 'prisma', 1, schema.replace(helper_1.CURSOR_CHARACTER, ''));
const params = {
textDocument: document,
position,
};
vitest_1.vi.stubEnv('FORCE_PANIC_PRISMA_SCHEMA_LOCAL', '1');
const onError = vitest_1.vi.fn();
(0, MessageHandler_1.handleCompletionRequest)(Schema_1.PrismaSchema.singleFile(document), document, params, onError);
(0, vitest_1.expect)(onError).toBeCalledTimes(1);
(0, vitest_1.expect)(onError).toBeCalledWith(vitest_1.expect.any(String));
});
(0, vitest_1.test)('completions', () => {
const fixturePath = getFixturePath('schema');
const document = (0, helper_1.getTextDocument)(fixturePath);
const params = {
textDocument: document,
position: { character: 0, line: 0 },
};
vitest_1.vi.stubEnv('FORCE_PANIC_PRISMA_SCHEMA', '1');
const onError = vitest_1.vi.fn();
(0, MessageHandler_1.handleCompletionRequest)(Schema_1.PrismaSchema.singleFile(document), document, params, onError);
(0, vitest_1.expect)(onError).toBeCalledTimes(1);
(0, vitest_1.expect)(onError).toBeCalledWith(vitest_1.expect.any(String));
});
});
//# sourceMappingURL=artificial-panic.test.js.map