UNPKG

plaxtony

Version:

Static code analysis of SC2 Galaxy Script

58 lines 3.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("mocha"); const chai_1 = require("chai"); const helpers_1 = require("./helpers"); const provider_1 = require("../src/service/provider"); const completions_1 = require("../src/service/completions"); const utils_1 = require("../src/service/utils"); function completionsContains(completions, name) { for (const x of completions.items) { if (x.label === name) return true; } return false; } describe('Completions', () => { describe('Static', () => { let store; let complProvider; let docsMap; before(async () => { store = await helpers_1.mockupStoreFromDirectory(helpers_1.fixtureFilePath('service', 'completion', 'static')); complProvider = provider_1.createProvider(completions_1.CompletionsProvider, store); docsMap = helpers_1.mapStoreFilesByBasename(store); }); it('not proposed in other files', () => { const results = complProvider.getCompletionsAt(docsMap.get('non_static.galaxy').fileName, utils_1.getPositionOfLineAndCharacter(docsMap.get('non_static.galaxy'), 4, 0)); chai_1.assert.isFalse(completionsContains(results, 'static_a_var')); chai_1.assert.isFalse(completionsContains(results, 'static_a_func')); chai_1.assert.isFalse(completionsContains(results, 'static_b_var')); chai_1.assert.isFalse(completionsContains(results, 'static_b_func')); }); it('aware about own A', () => { const results = complProvider.getCompletionsAt(docsMap.get('static_a.galaxy').fileName, utils_1.getPositionOfLineAndCharacter(docsMap.get('static_a.galaxy'), 4, 0)); chai_1.assert.isTrue(completionsContains(results, 'static_a_var')); chai_1.assert.isTrue(completionsContains(results, 'static_a_func')); chai_1.assert.isFalse(completionsContains(results, 'static_b_var')); chai_1.assert.isFalse(completionsContains(results, 'static_b_func')); chai_1.assert.isTrue(completionsContains(results, 'non_static_var')); }); it('aware about own B', () => { const results = complProvider.getCompletionsAt(docsMap.get('static_b.galaxy').fileName, utils_1.getPositionOfLineAndCharacter(docsMap.get('static_b.galaxy'), 4, 0)); chai_1.assert.isTrue(completionsContains(results, 'static_b_var')); chai_1.assert.isTrue(completionsContains(results, 'static_b_func')); chai_1.assert.isFalse(completionsContains(results, 'static_a_var')); chai_1.assert.isFalse(completionsContains(results, 'static_a_func')); chai_1.assert.isTrue(completionsContains(results, 'non_static_var')); }); }); it('incomplete variable declaration', function () { const [store, sourceFile] = helpers_1.mockupStoreDocument('service', 'completion', 'incomplete_variable_decl.galaxy'); const complProvider = provider_1.createProvider(completions_1.CompletionsProvider, store); const results = complProvider.getCompletionsAt(sourceFile.fileName, utils_1.getPositionOfLineAndCharacter(sourceFile, 1, 11)); chai_1.assert.lengthOf(results.items, 1); chai_1.assert.isTrue(completionsContains(results, 'MAX_PLAYERS')); }); }); //# sourceMappingURL=completions.js.map