Skip to content

Commit

Permalink
Signed-off-by: Aurélien Pupier <apupier@redhat.com>
Browse files Browse the repository at this point in the history
  • Loading branch information
apupier committed Jul 3, 2018
1 parent 689f002 commit 7a02c76
Show file tree
Hide file tree
Showing 9 changed files with 110 additions and 32 deletions.
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ install:
- 'npm run vscode:prepublish'
- 'npm install -g vsce'
- 'vsce package'
script:
- 'npm test --silent'
after_success:
- if [[ $TRAVIS_PULL_REQUEST == "false" && $TRAVIS_BRANCH == "master" ]]; then
sonar-scanner;
Expand Down
14 changes: 8 additions & 6 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,28 @@
"version": "0.1.0",
"configurations": [
{
"name": "Launch Extension",
"name": "Launch Camel LSP client Extension",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": ["--extensionDevelopmentPath=${workspaceRoot}", "--debug" ],
"stopOnEntry": false,
"sourceMaps": true,
"outDir": "${workspaceRoot}/out/src",
"outFiles": ["${workspaceRoot}/out/**/*.js"],
"preLaunchTask": "compile"
},
{
"name": "Launch Tests",
"name": "Launch Camel Language Server E2E Tests",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ],
"args": [
"--extensionDevelopmentPath=${workspaceRoot}",
"--extensionTestsPath=${workspaceRoot}/out/test",
"${workspaceRoot}/testFixture" ],
"stopOnEntry": false,
"sourceMaps": true,
"outDir": "${workspaceRoot}/out/test",
"preLaunchTask": "compile"
"outFiles": ["${workspaceRoot}/out/test/**/*.js"]
}
]
}
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"Tool"
],
"engines": {
"vscode": "^1.18.0"
"vscode": "^1.23.0"
},
"categories": [
"Languages",
Expand All @@ -47,7 +47,7 @@
"onLanguage:java",
"workspaceContains:*.java"
],
"main": "./out/src/extension",
"main": "./out/extension",
"contributes": {
"languages": [
{
Expand Down Expand Up @@ -97,6 +97,6 @@
"path-exists": "^3.0.0",
"progress-stream": "^1.2.0",
"tmp": "^0.0.31",
"vscode-languageclient": "^3.5.0"
"vscode-languageclient": "^4.1.4"
}
}
39 changes: 39 additions & 0 deletions src/test/completion.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
'use strict';

import * as vscode from 'vscode';
import * as assert from 'assert';
import { getDocUri, activate } from './helper';

describe('Should do completion', () => {
const docUri = getDocUri('apacheCamel.xml');

it('Completes components in Camel xml file', async () => {
await testCompletion(docUri, new vscode.Position(0, 13), {
items: [
{ label: 'tika:operation'},
{ label: 'timer:timerName'}
]
});
});
});

async function testCompletion(
docUri: vscode.Uri,
position: vscode.Position,
expectedCompletionList: vscode.CompletionList
) {
await activate(docUri);

// Executing the command `vscode.executeCompletionItemProvider` to simulate triggering completion
const actualCompletionList = (await vscode.commands.executeCommand(
'vscode.executeCompletionItemProvider',
docUri,
position
)) as vscode.CompletionList;

assert.equal(actualCompletionList.items.length, expectedCompletionList.items.length);
expectedCompletionList.items.forEach((expectedItem, i) => {
const actualItem = actualCompletionList.items[i];
assert.equal(actualItem.label, expectedItem.label);
});
}
44 changes: 44 additions & 0 deletions src/test/helper.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
'use strict';

import * as vscode from 'vscode';
import * as path from 'path';

export let doc: vscode.TextDocument;
export let editor: vscode.TextEditor;
export let documentEol: string;
export let platformEol: string;

/**
* Activates the vscode-apache-camel extension
*/
export async function activate(docUri: vscode.Uri) {
// The extensionId is `publisher.name` from package.json
const ext = vscode.extensions.getExtension('camel-tooling.vscode-apache-camel');
await ext.activate();
try {
doc = await vscode.workspace.openTextDocument(docUri);
editor = await vscode.window.showTextDocument(doc);
await sleep(2000); // Wait for server activation
} catch (e) {
console.error(e);
}
}

async function sleep(ms: number) {
return new Promise(resolve => setTimeout(resolve, ms));
}

export const getDocPath = (p: string) => {
return path.resolve(__dirname, '../../testFixture', p);
};
export const getDocUri = (p: string) => {
return vscode.Uri.file(getDocPath(p));
};

export async function setTestContent(content: string): Promise<boolean> {
const all = new vscode.Range(
doc.positionAt(0),
doc.positionAt(doc.getText().length)
);
return editor.edit(eb => eb.replace(all, content));
}
11 changes: 11 additions & 0 deletions src/test/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
'use strict';

import * as testRunner from 'vscode/lib/testrunner';

testRunner.configure({
ui: 'bdd',
useColors: true,
timeout: 100000
});

module.exports = testRunner;
22 changes: 0 additions & 22 deletions test/index.ts

This file was deleted.

File renamed without changes.
4 changes: 3 additions & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,11 @@
"outDir": "out",
"sourceMap": true
},
"include": [
"src"
],
"exclude": [
"node_modules",
"server",
".vscode-test"
]
}

0 comments on commit 7a02c76

Please sign in to comment.