@prisma/language-server
Version:
Prisma Language Server
240 lines • 6.91 kB
JavaScript
"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