diff --git a/examples/api-tests/src/typescript.spec.js b/examples/api-tests/src/typescript.spec.js index 61596fb4f26fd..00866f13ec685 100644 --- a/examples/api-tests/src/typescript.spec.js +++ b/examples/api-tests/src/typescript.spec.js @@ -664,7 +664,6 @@ SPAN { const editor = await openEditor(demoFileUri); const currentChar = () => editor.getControl().getModel().getLineContent(lineNumber).charAt(column - 1); - // const demoVariable = demoInstance.stringField; --> const demoVariable = demoInstance.stringFiel; editor.getControl().getModel().applyEdits([{ range: { startLineNumber: lineNumber, @@ -677,7 +676,7 @@ SPAN { }]); editor.getControl().setPosition({ lineNumber, column }); editor.getControl().revealPosition({ lineNumber, column }); - assert.equal(currentChar(), ';'); + assert.equal(currentChar(), ';', 'Failed at assert 1'); /** @type {import('@theia/monaco-editor-core/src/vs/editor/contrib/codeAction/browser/codeActionCommands').CodeActionController} */ const codeActionController = editor.getControl().getContribution('editor.contrib.codeActionController'); @@ -691,23 +690,41 @@ SPAN { return !!node && node.style.visibility !== 'hidden'; }; - assert.isFalse(lightBulbVisible()); + assert.isFalse(lightBulbVisible(), 'Failed at assert 2'); await waitForAnimation(() => lightBulbVisible()); await commands.executeCommand('editor.action.quickFix'); const codeActionSelector = '.codeActionWidget'; - assert.isFalse(!!document.querySelector(codeActionSelector), 'codeActionWidget should not be visible'); - - await waitForAnimation(() => !!document.querySelector(codeActionSelector), 5000); + assert.isFalse(!!document.querySelector(codeActionSelector), 'Failed at assert 3 - codeActionWidget should not be visible'); + + console.log('Waiting for Quick Fix widget to be visible'); + await waitForAnimation(() => { + const quickFixWidgetVisible = !!document.querySelector(codeActionSelector); + if (!quickFixWidgetVisible) { + console.log('...'); + return false; + } + return true; + }, 10000, 'Timed-out waiting for the QuickFix widget to appear'); await animationFrame(); + assert.isTrue(lightBulbVisible(), 'Failed at assert 4'); keybindings.dispatchKeyDown('Enter'); + console.log('Waiting for confirmation that QuickFix has taken effect'); + await waitForAnimation(() => { + const quickFixHasTakenEffect = !lightBulbVisible(); + if (!quickFixHasTakenEffect) { + console.log('...'); + return false; + } + return true; + }, 5000, 'Quickfix widget has not been dismissed despite attempts to accept suggestion'); - await waitForAnimation(() => currentChar() === 'd', 5000); - assert.equal(currentChar(), 'd'); + await waitForAnimation(() => currentChar() === 'd', 5000, 'Failed to detect expected selected char: "d"'); + assert.equal(currentChar(), 'd', 'Failed at assert 5'); await waitForAnimation(() => !lightBulbVisible()); - assert.isFalse(lightBulbVisible()); + assert.isFalse(lightBulbVisible(), 'Failed at assert 6'); }); it('editor.action.formatDocument', async function () {