diff --git a/src/test/integration/stacks/stack.test.ts b/src/test/integration/stacks/stack.test.ts index fb9bb69ff..7e2ce0cf2 100644 --- a/src/test/integration/stacks/stack.test.ts +++ b/src/test/integration/stacks/stack.test.ts @@ -60,17 +60,6 @@ suite('stacks stack', () => { }); test('completes attributes of component block', async () => { - // await vscode.window.activeTextEditor?.edit((editBuilder) => { - // editBuilder.insert( - // new vscode.Position(2, 0), - // ` - // component "test" { - - // } - // `, - // ); - // }); - const expected = [ new vscode.CompletionItem('depends_on', vscode.CompletionItemKind.Property), new vscode.CompletionItem('for_each', vscode.CompletionItemKind.Property), @@ -80,25 +69,24 @@ suite('stacks stack', () => { new vscode.CompletionItem('version', vscode.CompletionItemKind.Property), ]; - // await testCompletion(docUri, new vscode.Position(4, 2), { await testCompletion(docUri, new vscode.Position(4, 12), { items: expected, }); }); - // TODO: not implemented yet - test.skip('completes inputs for local component', async () => { + test('completes inputs for local component', async () => { + await open(docUri); await vscode.window.activeTextEditor?.edit((editBuilder) => { editBuilder.insert( new vscode.Position(2, 0), ` - component "test" { - source = "./lambda" +component "test" { + source = "./lambda" - inputs = { + inputs = { - } - } + } +} `, ); }); @@ -110,8 +98,23 @@ suite('stacks stack', () => { }); }); - // TODO: not implemented yet - test.skip('completes references to provider blocks', async () => { + test('completes providers for local component', async () => { + await open(docUri); + await vscode.window.activeTextEditor?.edit((editBuilder) => { + editBuilder.insert( + new vscode.Position(2, 0), + ` +component "test" { + source = "./lambda" + + providers = { + + } +} + `, + ); + }); + const expected = [ new vscode.CompletionItem('archive', vscode.CompletionItemKind.Property), new vscode.CompletionItem('aws', vscode.CompletionItemKind.Property), @@ -119,16 +122,35 @@ suite('stacks stack', () => { new vscode.CompletionItem('random', vscode.CompletionItemKind.Property), ]; - await testCompletion(docUri, new vscode.Position(11, 22), { + await testCompletion(docUri, new vscode.Position(7, 4), { items: expected, }); }); - // TODO implement this - test.skip('completes references to provider block names', async () => { - const expected = [new vscode.CompletionItem('this', vscode.CompletionItemKind.Property)]; + test('completes references to providers', async () => { + await open(docUri); + await vscode.window.activeTextEditor?.edit((editBuilder) => { + editBuilder.insert( + new vscode.Position(2, 0), + ` +component "test" { + source = "./lambda" - await testCompletion(docUri, new vscode.Position(11, 26), { + providers = { + aws = provider. + } +} + `, + ); + }); + + const expected = [ + new vscode.CompletionItem('provider.archive.this', vscode.CompletionItemKind.Variable), + new vscode.CompletionItem('provider.aws.this', vscode.CompletionItemKind.Variable), + new vscode.CompletionItem('provider.local.this', vscode.CompletionItemKind.Variable), + new vscode.CompletionItem('provider.random.this', vscode.CompletionItemKind.Variable), + ]; + await testCompletion(docUri, new vscode.Position(7, 19), { items: expected, }); });