UNPKG

@prisma/language-server

Version:
240 lines • 6.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const vitest_1 = require("vitest"); const MessageHandler_1 = require("../lib/MessageHandler"); const MultifileHelper_1 = require("./MultifileHelper"); const getReferences = (uri, schema, position) => { const params = { textDocument: { uri: uri }, position, context: { includeDeclaration: true }, }; return (0, MessageHandler_1.handleReferencesRequest)(schema, params); }; (0, vitest_1.describe)('References', async () => { const helper = await (0, MultifileHelper_1.getMultifileHelper)('references'); (0, vitest_1.test)('of a composite type block name', () => { const file = helper.file('types.prisma'); const references = getReferences(file.uri, helper.schema, file.lineContaining('type Address').characterAfter('Addr')); (0, vitest_1.expect)(references).not.toBeUndefined(); (0, vitest_1.expect)(references).toMatchInlineSnapshot(` [ { "range": { "end": { "character": 12, "line": 1, }, "start": { "character": 5, "line": 1, }, }, "uri": "file:///references/types.prisma", }, { "range": { "end": { "character": 19, "line": 6, }, "start": { "character": 12, "line": 6, }, }, "uri": "file:///references/models.prisma", }, { "range": { "end": { "character": 19, "line": 6, }, "start": { "character": 12, "line": 6, }, }, "uri": "file:///references/views.prisma", }, ] `); }); (0, vitest_1.test)('of a composite type as a field type', () => { const file = helper.file('models.prisma'); const references = getReferences(file.uri, helper.schema, file.lineContaining('address Address').characterAfter('Addr')); (0, vitest_1.expect)(references).not.toBeUndefined(); (0, vitest_1.expect)(references).toMatchInlineSnapshot(` [ { "range": { "end": { "character": 12, "line": 1, }, "start": { "character": 5, "line": 1, }, }, "uri": "file:///references/types.prisma", }, { "range": { "end": { "character": 19, "line": 6, }, "start": { "character": 12, "line": 6, }, }, "uri": "file:///references/models.prisma", }, { "range": { "end": { "character": 19, "line": 6, }, "start": { "character": 12, "line": 6, }, }, "uri": "file:///references/views.prisma", }, ] `); }); (0, vitest_1.test)('of a model block name', () => { const file = helper.file('models.prisma'); const references = getReferences(file.uri, helper.schema, file.lineContaining('model Post').characterAfter('Po')); (0, vitest_1.expect)(references).not.toBeUndefined(); (0, vitest_1.expect)(references).toMatchInlineSnapshot(` [ { "range": { "end": { "character": 10, "line": 14, }, "start": { "character": 6, "line": 14, }, }, "uri": "file:///references/models.prisma", }, { "range": { "end": { "character": 16, "line": 3, }, "start": { "character": 12, "line": 3, }, }, "uri": "file:///references/models.prisma", }, { "range": { "end": { "character": 15, "line": 4, }, "start": { "character": 11, "line": 4, }, }, "uri": "file:///references/views.prisma", }, ] `); }); (0, vitest_1.test)('of a model relation as a field type', () => { const file = helper.file('models.prisma'); const references = getReferences(file.uri, helper.schema, file.lineContaining('author User').characterAfter('Us')); (0, vitest_1.expect)(references).not.toBeUndefined(); (0, vitest_1.expect)(references).toMatchInlineSnapshot(` [ { "range": { "end": { "character": 10, "line": 0, }, "start": { "character": 6, "line": 0, }, }, "uri": "file:///references/models.prisma", }, { "range": { "end": { "character": 17, "line": 17, }, "start": { "character": 13, "line": 17, }, }, "uri": "file:///references/models.prisma", }, ] `); }); (0, vitest_1.test)('of a field from relation fields', () => { const file = helper.file('models.prisma'); const references = getReferences(file.uri, helper.schema, file.lineContaining('author User').characterAfter('fields: [auth')); (0, vitest_1.expect)(references).not.toBeUndefined(); (0, vitest_1.expect)(references).toMatchInlineSnapshot(` [ { "range": { "end": { "character": 12, "line": 16, }, "start": { "character": 4, "line": 16, }, }, "uri": "file:///references/models.prisma", }, ] `); }); (0, vitest_1.test)('of a field from relation fields', () => { const file = helper.file('models.prisma'); const references = getReferences(file.uri, helper.schema, file.lineContaining('author User').characterAfter('references: [i')); (0, vitest_1.expect)(references).not.toBeUndefined(); (0, vitest_1.expect)(references).toMatchInlineSnapshot(` [ { "range": { "end": { "character": 6, "line": 1, }, "start": { "character": 4, "line": 1, }, }, "uri": "file:///references/models.prisma", }, ] `); }); }); //# sourceMappingURL=references.test.js.map