From 10ac3c720e6c6e2c5ea8a2f2b44ca6f263c52cb7 Mon Sep 17 00:00:00 2001 From: Annie Huang Date: Sun, 3 Dec 2023 19:16:02 +0800 Subject: [PATCH] Add check finished, typing delay --- tests/cypress/support/commands.js | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/tests/cypress/support/commands.js b/tests/cypress/support/commands.js index 83fd2d0..1bc13fa 100644 --- a/tests/cypress/support/commands.js +++ b/tests/cypress/support/commands.js @@ -38,7 +38,9 @@ Cypress.Commands.add('InitTerminal', () => { cy.log('Check terminal init done') }) Cypress.Commands.add('typeInCommand', (command) => { - cy.get('.xterm-screen', { timeout: 150000 }).type(command, { delay: 10 }) + cy.get('.xterm-screen', { timeout: 150000 }).type(command, { + delay: 100, + }) }) Cypress.Commands.add('getQuestInfo', (id) => { return cy @@ -60,7 +62,7 @@ Cypress.Commands.add('waitUntilActive', () => { cy.get('input[id="currentStatus"]', { timeout: 1000000 }) .invoke('val') .then((value) => { - if (value === 'active' || value === 'finished') { + if (value === 'active') { cy.log('story ends') return } @@ -68,6 +70,22 @@ Cypress.Commands.add('waitUntilActive', () => { cy.waitUntilActive() }) }) +Cypress.Commands.add('checkFinished', () => { + cy.get('input[id="currentStatus"]', { timeout: 1000000 }) + .invoke('val') + .then((value) => { + if (value === 'finished') { + cy.log(value) + cy.log('Quest Finished') + return + } + if (value === 'pending') { + cy.log(value) + cy.typeInCommand('{enter}') + cy.checkFinished() + } + }) +}) Cypress.Commands.add('checkPending', () => { cy.get('input[id="currentStatus"]', { timeout: 1000000 }).should( 'have.value', @@ -91,6 +109,12 @@ Cypress.Commands.add('CompleteStageWithCommands', (stagename) => { cy.checkPending() cy.waitUntilActive() } + if (answerarr.indexOf(element) + 1 === answerarr.length) { + cy.checkFinished() + cy.CheckTextElement('#QuestCompleted', '關卡完成!', 'Quest Completed!') + cy.get('div[class="modal"]').find('p').should('be.visible') + cy.get('#BacktoMap').should('be.visible').and('contain', '回到地圖') + } } }) })