From 3f712aeaeb3bf1d86b44a83b26eb60435f3445e4 Mon Sep 17 00:00:00 2001 From: idillon Date: Wed, 15 May 2024 14:09:32 -0400 Subject: [PATCH] Chore: Add additional tests to onRename --- server/src/__tests__/fixtures/fixtures.ts | 1 + server/src/__tests__/fixtures/rename.bb | 11 +++ server/src/__tests__/onRename.test.ts | 102 +++++++++++++++++++--- 3 files changed, 104 insertions(+), 10 deletions(-) create mode 100644 server/src/__tests__/fixtures/rename.bb diff --git a/server/src/__tests__/fixtures/fixtures.ts b/server/src/__tests__/fixtures/fixtures.ts index 46b8892a..b7cfb3f4 100644 --- a/server/src/__tests__/fixtures/fixtures.ts +++ b/server/src/__tests__/fixtures/fixtures.ts @@ -33,6 +33,7 @@ export const FIXTURE_URI = { EMBEDDED: `file://${path.join(FIXTURE_FOLDER, 'embedded.bb')}`, SEMANTIC_TOKENS: `file://${path.join(FIXTURE_FOLDER, 'semanticTokens.bb')}`, DIRECTIVE: `file://${path.join(FIXTURE_FOLDER, 'directive.bb')}`, + RENAME: `file://${path.join(FIXTURE_FOLDER, 'rename.bb')}`, BAZ_BBCLASS: `file://${path.join(FIXTURE_FOLDER, 'bbclass', 'baz.bbclass')}`, BAR_INC: `file://${path.join(FIXTURE_FOLDER, 'inc', 'bar.inc')}`, FOO_INC: `file://${path.join(FIXTURE_FOLDER, 'inc', 'foo.inc')}`, diff --git a/server/src/__tests__/fixtures/rename.bb b/server/src/__tests__/fixtures/rename.bb new file mode 100644 index 00000000..54b1e1cd --- /dev/null +++ b/server/src/__tests__/fixtures/rename.bb @@ -0,0 +1,11 @@ +FOO="FOO" +BAR="${FOO}" +python() { + FOO = 'FOO' + d.getVar("FOO") +} +FOO() { + "${@d.getVar('FOO')}" + FOO="$FOO ${FOO} FOO" + FOO +} diff --git a/server/src/__tests__/onRename.test.ts b/server/src/__tests__/onRename.test.ts index cd7aaeef..39edc0b2 100644 --- a/server/src/__tests__/onRename.test.ts +++ b/server/src/__tests__/onRename.test.ts @@ -3,6 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. * ------------------------------------------------------------------------------------------ */ +import { bitBakeDocScanner } from '../BitBakeDocScanner' import { onRenameRequestHandler, onPrepareRenameHandler } from '../connectionHandlers/onRename' import { analyzer } from '../tree-sitter/analyzer' import { generateBashParser, generateBitBakeParser } from '../tree-sitter/parser' @@ -21,11 +22,11 @@ describe('onRenameRequestHandler', () => { it('should not prompt rename if it is not a symbol', () => { analyzer.analyze({ uri: DUMMY_URI, - document: FIXTURE_DOCUMENT.HOVER + document: FIXTURE_DOCUMENT.RENAME }) const renameParams = { - position: { line: 1, character: 17 }, + position: { line: 2, character: 1 }, newName: 'newName', textDocument: { uri: DUMMY_URI } } @@ -36,13 +37,14 @@ describe('onRenameRequestHandler', () => { }) it('should return expect edits', () => { + bitBakeDocScanner.parsePythonDatastoreFunction() analyzer.analyze({ uri: DUMMY_URI, - document: FIXTURE_DOCUMENT.HOVER + document: FIXTURE_DOCUMENT.RENAME }) const renameParams = { - position: { line: 2, character: 1 }, + position: { line: 0, character: 1 }, newName: 'newName', textDocument: { uri: DUMMY_URI } } @@ -52,24 +54,104 @@ describe('onRenameRequestHandler', () => { expect(result).toEqual( expect.objectContaining({ changes: { - [DUMMY_URI]: expect.arrayContaining([ + [DUMMY_URI]: [ + { + range: { + start: { + line: 0, + character: 0 + }, + end: { + line: 0, + character: 3 + } + }, + newText: 'newName' + }, + { + range: { + start: { + line: 1, + character: 7 + }, + end: { + line: 1, + character: 10 + } + }, + newText: 'newName' + }, + { + range: { + start: { + line: 8, + character: 4 + }, + end: { + line: 8, + character: 7 + } + }, + newText: 'newName' + }, + { + range: { + start: { + line: 8, + character: 10 + }, + end: { + line: 8, + character: 13 + } + }, + newText: 'newName' + }, { range: { - start: { line: 2, character: 0 }, - end: { line: 2, character: 5 } + start: { + line: 8, + character: 16 + }, + end: { + line: 8, + character: 19 + } }, newText: 'newName' }, { range: { - start: { line: 3, character: 0 }, - end: { line: 3, character: 5 } + start: { + line: 4, + character: 14 + }, + end: { + line: 4, + character: 17 + } + }, + newText: 'newName' + }, + { + range: { + start: { + line: 7, + character: 18 + }, + end: { + line: 7, + character: 21 + } }, newText: 'newName' } - ]) + ] } }) ) + + // Make sure there is not additional changes + expect(result?.changes?.[DUMMY_URI]?.length).toBe(7) }) })