Files
vscode/extensions/github/src/test/github.test.ts
T
Babak K. Shandiz 766743629d Polish PR template picker (#151415)
* 🔨 Set ignoreFocusOut to true on PR template selection

Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>

* 🔨 Translate PR template paths to relative in quick pick list

Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>

* 💄 Shorten line length

Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>

* ⚗️ Update tests with latest required args

Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>

* ⚗️ Update GitHub extension unit tests

Signed-off-by: Babak K. Shandiz <babak.k.shandiz@gmail.com>

Co-authored-by: João Moreno <joao.moreno@microsoft.com>
2022-06-10 12:54:37 +00:00

66 lines
2.4 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import 'mocha';
import * as assert from 'assert';
import { workspace, extensions, Uri, commands } from 'vscode';
import { findPullRequestTemplates, pickPullRequestTemplate } from '../pushErrorHandler';
suite('github smoke test', function () {
const cwd = workspace.workspaceFolders![0].uri;
suiteSetup(async function () {
const ext = extensions.getExtension('vscode.github');
await ext?.activate();
});
test('should find all templates', async function () {
const expectedValuesSorted = [
'PULL_REQUEST_TEMPLATE/a.md',
'PULL_REQUEST_TEMPLATE/b.md',
'docs/PULL_REQUEST_TEMPLATE.md',
'docs/PULL_REQUEST_TEMPLATE/a.md',
'docs/PULL_REQUEST_TEMPLATE/b.md',
'.github/PULL_REQUEST_TEMPLATE.md',
'.github/PULL_REQUEST_TEMPLATE/a.md',
'.github/PULL_REQUEST_TEMPLATE/b.md',
'PULL_REQUEST_TEMPLATE.md'
];
expectedValuesSorted.sort();
const uris = await findPullRequestTemplates(cwd);
const urisSorted = uris.map(x => x.path.slice(cwd.path.length));
urisSorted.sort();
assert.deepStrictEqual(urisSorted, expectedValuesSorted);
});
test('selecting non-default quick-pick item should correspond to a template', async () => {
const template0 = Uri.file("some-imaginary-template-0");
const template1 = Uri.file("some-imaginary-template-1");
const templates = [template0, template1];
const pick = pickPullRequestTemplate(Uri.file("/"), templates);
await commands.executeCommand('workbench.action.quickOpenSelectNext');
await commands.executeCommand('workbench.action.quickOpenSelectNext');
await commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem');
assert.ok(await pick === template0);
});
test('selecting first quick-pick item should return undefined', async () => {
const templates = [Uri.file("some-imaginary-file")];
const pick = pickPullRequestTemplate(Uri.file("/"), templates);
await commands.executeCommand('workbench.action.quickOpenSelectNext');
await commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem');
assert.ok(await pick === undefined);
});
});