Skip to content

Commit fd8ba70

Browse files
committed
Add new test
1 parent ef2ada1 commit fd8ba70

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

test/providers/completionProvider.test.ts

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,17 @@ suite('ParamHintCompletionProvider', () => {
4242
assert.notEqual(actual, null);
4343
assert.equal(actual?.items[0].label.trim(), PythonType.Int);
4444
});
45-
46-
test("does not provide items for dict keys", async () => {
47-
let expected = null;
48-
let actual = await providerResult(provider, "):\n d = { key:");
49-
assert.equal(actual, expected);
45+
46+
test("does not provide items unless a function def is detected", async () => {
47+
let text = " :";
48+
let pos = new vsc.Position(0, text.length);
49+
let actual = await provideCompletionItems(provider, text, pos);
50+
assert.equal(actual, null);
5051
});
5152

5253
test("does not provide items for ':' without a param (within function brackets)", async () => {
53-
let expected = null;
5454
let actual = await providerResult(provider, "param, :");
55-
assert.equal(actual, expected);
55+
assert.equal(actual, null);
5656
});
5757

5858
test("does not provide items for ':' under a function def", async () => {
@@ -64,12 +64,15 @@ suite('ParamHintCompletionProvider', () => {
6464
data = "):\n :";
6565
actual = await providerResult(provider, data);
6666
assert.equal(actual, expected, messageFor({ data, expected }, actual));
67+
68+
data = "):\n d = { key:";
69+
actual = await providerResult(provider, data);
70+
assert.equal(actual, null, messageFor({ data, expected }, actual));
6771
});
6872

6973
test("does not provide items for end of function definition", async () => {
70-
let expected = null;
7174
let actual = await providerResult(provider, "):");
72-
assert.equal(actual, expected);
75+
assert.equal(actual, null);
7376
});
7477

7578
test("does not include * in parameter name", async () => {
@@ -96,9 +99,17 @@ async function providerResult(
9699
content += trailingText;
97100
}
98101

99-
const doc = await vsc.workspace.openTextDocument({ language, content });
102+
return provideCompletionItems(provider, content, lastPos);
103+
}
104+
105+
async function provideCompletionItems(
106+
provider: CompletionProvider,
107+
documentContent: string,
108+
pos: vsc.Position
109+
): Promise<vsc.CompletionList | null> {
110+
const doc = await vsc.workspace.openTextDocument({ language, content: documentContent });
100111
const token = new vsc.CancellationTokenSource().token;
101112
const ctx = { triggerCharacter: paramHintTrigger, triggerKind: vsc.CompletionTriggerKind.TriggerCharacter };
102113

103-
return provider.provideCompletionItems(doc, lastPos, token, ctx);
114+
return provider.provideCompletionItems(doc, pos, token, ctx);
104115
}

0 commit comments

Comments
 (0)