@@ -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