Skip to content

Commit

Permalink
added test for back button on SelectDevice page; added first tests to…
Browse files Browse the repository at this point in the history
… SelectVersion page
  • Loading branch information
qlrd committed Aug 14, 2023
1 parent 3c634c6 commit 7e814a8
Show file tree
Hide file tree
Showing 7 changed files with 184 additions and 9 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build-windows-nsis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ jobs:

- name: Upload artifacts
uses: actions/upload-artifact@v3
#if: ${{ github.ref_name == 'main' }}
if: ${{ github.ref_name == 'main' }}
with:
name: ${{ runner.os}}-${{ steps.setup.outputs.app-name }}-Nsis
retention-days: 5
Expand Down
1 change: 1 addition & 0 deletions src/pages/GithubChecker.vue
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
:index="index"
:timeout="timeout"
:fontSize="fontSize"
id="github-octocat-checker-logo"
/>
</v-col>
</v-row>
Expand Down
8 changes: 5 additions & 3 deletions src/pages/SelectVersion.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<template>
<v-item-group>
<v-item-group id="select-version-page">
<v-container>
<v-row v-for="(version, i) in versions" :key="i">
<v-col>
Expand All @@ -8,8 +8,9 @@
variant="outlined"
:class="[selectedClass]"
@click="select(version)"
:id="`select-version-page-${version}-button`"
>
<v-card-title> {{ version }}</v-card-title>
<v-card-title :id="`select-version-page-${version}-text`"> {{ version }}</v-card-title>
</v-card>
</v-item>
</v-col>
Expand All @@ -21,8 +22,9 @@
variant="outlined"
:class="[selectedClass]"
@click.prevent="back()"
id="select-device-page-back-button"
>
<v-card-title>
<v-card-title id="select-version-page-back-text">
Back
</v-card-title>
</v-card>
Expand Down
55 changes: 51 additions & 4 deletions test/e2e/pageobjects/app.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@ class App {
private __select_device_page_maixpy_bit_text__: string;
private __select_device_page_maixpy_dock_text__: string;
private __select_device_page_maixpy_back_text__: string;
private __select_version_page__: string;
private __select_version_page_selfcustody_button__: string;
private __select_version_page_selfcustody_text__: string;
private __select_version_page_odudex_button__: string;
private __select_version_page_odudex_text__: string;
private __select_version_page_back_button__: string;
private __select_version_page_back_text__: string;
private __github_octocat_checker_logo__: string;

constructor () {
this.__app__ = '#app'
Expand All @@ -55,13 +63,21 @@ class App {
this.__select_device_page_maixpy_amigo_tft_button__ = 'div#select-device-page-maixpy_amigo_tft-button'
this.__select_device_page_maixpy_bit_button__ = 'div#select-device-page-maixpy_bit-button'
this.__select_device_page_maixpy_dock_button__ = 'div#select-device-page-maixpy_dock-button'
this.__select_device_page_back_button__ = 'div#select-device-page-back-button'
this.__select_device_page_maixpy_back_button__ = 'div#select-device-page-back-button'
this.__select_device_page_maixpy_m5stickv_text__ = 'div#select-device-page-maixpy_m5stickv-text'
this.__select_device_page_maixpy_amigo_ips_text__ = 'div#select-device-page-maixpy_amigo_ips-text'
this.__select_device_page_maixpy_amigo_tft_text__ = 'div#select-device-page-maixpy_amigo_tft-text'
this.__select_device_page_maixpy_bit_text__ = 'div#select-device-page-maixpy_bit-text'
this.__select_device_page_maixpy_dock_text__ = 'div#select-device-page-maixpy_dock-text'
this.__select_device_page_back_text__ = 'div#select-device-page-back-text'
this.__select_device_page_maixpy_back_text__ = 'div#select-device-page-back-text'
this.__select_version_page__ = 'div#select-version-page';
this.__select_version_page_selfcustody_button__ = 'div#select-version-page-selfcustody/krux/releases/tag/v22.08.2-button'
this.__select_version_page_back_button__ = 'div#select-version-page-back-button'
this.__select_version_page_odudex_button__ = 'div#select-version-page-odudex/krux_binaries-button'
this.__select_version_page_selfcustody_text__ = 'div#select-version-page-selfcustody/krux/releases/tag/v22.08.2-text'
this.__select_version_page_odudex_text__ = 'div#select-version-page-odudex/krux_binaries-text'
this.__select_version_page_back_text__ = 'div#select-version-page-back-text'
this.__github_octocat_checker_logo__ = 'pre#github-octocat-checker-logo'
}

get title () {
Expand Down Expand Up @@ -157,7 +173,7 @@ class App {
}

get selectBackButton () {
return $(this.__select_device_page_back_button__)
return $(this.__select_device_page_maixpy_back_button__)
}

get selectMaixpyM5StickVText () {
Expand All @@ -181,9 +197,40 @@ class App {
}

get selectBackText () {
return $(this.__select_device_page_back_text__)
return $(this.__select_device_page_maixpy_back_text__)
}

get selectVersionPage () {
return $(this.__select_version_page__)
}

get selectVersionSelfcustodyButton () {
return $(this.__select_version_page_selfcustody_button__)
}

get selectVersionOdudexButton () {
return $(this.__select_version_page_odudex_button__)
}

get selectVersionBackButton () {
return $(this.__select_version_page_back_button__)
}

get selectVersionSelfcustodyText () {
return $(this.__select_version_page_selfcustody_text__)
}

get selectVersionOdudexText () {
return $(this.__select_version_page_odudex_text__)
}

get selectVersionBackText () {
return $(this.__select_version_page_back_text__)
}

get githubOctocatCheckerLogo () {
return $(this.__github_octocat_checker_logo__)
}
}

module.exports = App
2 changes: 1 addition & 1 deletion test/e2e/specs/011.select-device-dock.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ describe('KruxInstaller SelectDevice page selects \'maixpy_dock\' device', () =>
await expectWDIO(instance.mainSelectDeviceText).toHaveText('Device: maixpy_dock')
})

})
})
50 changes: 50 additions & 0 deletions test/e2e/specs/012.select-device-back.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
const expectChai = require('chai').expect
const expectWDIO = require('@wdio/globals').expect
const { describe, it } = require('mocha')

const App = require('../pageobjects/app.page')

describe('KruxInstaller SelectDevice page selects \'back\' button', () => {

let instance: any;

before(async function () {
instance = new App()
await instance.app.waitForExist()
await instance.main.waitForExist()
await instance.logo.waitForExist()
await instance.logo.waitForExist({ reverse: true })
await instance.loadingDataMsg.waitForExist()
await instance.verifyingOpensslMsg.waitForExist()
if (process.platform === 'linux') {
await instance.opensslForLinuxFound.waitForExist()
} else if (process.platform === 'darwin') {
await instance.opensslForDarwinFound.waitForExist()
} else if (process.platform === 'win32') {
await instance.opensslForWin32Found.waitForExist()
}
await instance.loadingDataMsg.waitForExist({ reverse: true })
await instance.verifyingOpensslMsg.waitForExist({ reverse: true })
await instance.opensslForLinuxFound.waitForExist({ reverse: true })
await instance.mainPage.waitForExist()
await instance.mainSelectDeviceButton.waitForExist()
await instance.mainSelectVersionButton.waitForExist()
await instance.mainSelectDeviceButton.click()
await instance.mainPage.waitForExist({ reverse: true })
await instance.selectDevicePage.waitForExist()
await instance.selectBackButton.waitForExist()
await instance.selectBackButton.click()
})

it('should change to Main page', async () => {
await instance.selectDevicePage.waitForExist({ reverse: true })
await expectWDIO(instance.selectDevicePage).not.toBeDisplayed()
await instance.mainPage.waitForExist()
await expectWDIO(instance.mainPage).toBeDisplayed()
})

it('should \'Select device\' button mantain its text to \'Select device\'', async () => {
await expectWDIO(instance.mainSelectDeviceText).toHaveText('Select device')
})

})
75 changes: 75 additions & 0 deletions test/e2e/specs/013.select-version-show-only.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
const expectChai = require('chai').expect
const expectWDIO = require('@wdio/globals').expect
const { describe, it } = require('mocha')

const App = require('../pageobjects/app.page')

const GITHUB_OCTOCAT = [
"MMM. .MMM ",
" MMMMMMMMMMMMMMMMMMM ",
" MMMMMMMMMMMMMMMMMMM ",
" MMMMMMMMMMMMMMMMMMMMM ",
" MMMMMMMMMMMMMMMMMMMMMMM ",
" MMMMMMMMMMMMMMMMMMMMMMMMM ",
" MMMM::- -:::::::- -::MMMM ",
" MM~:~ 00~:::::~ 00~:~MM ",
".. MMMMM::.00:::+:::.00::MMMMM .. ",
" .MM::::: ._. :::::MM. ",
" MMMM;:::::;MMMM ",
" -MM MMMMMMM ",
" ^ M+ MMMMMMMMM ",
" MMMMMMM MM MM MM ",
" MM MM MM MM ",
" MM MM MM MM ",
" .~~MM~MM~MM~MM~~. ",
" ~~~~MM:~MM~~~MM~:MM~~~~ ",
" ~~~~~~==~==~~~==~==~~~~~~ ",
" ~~~~~~==~==~==~==~~~~~~ ",
" :~==~==~==~==~~ ",
" Checking latest release on github"
].join('\n')

describe('KruxInstaller SelectVersion page (show only)', () => {

let instance: any;

before(async function () {
instance = new App()
await instance.app.waitForExist()
await instance.main.waitForExist()
await instance.logo.waitForExist()
await instance.logo.waitForExist({ reverse: true })
await instance.loadingDataMsg.waitForExist()
await instance.verifyingOpensslMsg.waitForExist()
if (process.platform === 'linux') {
await instance.opensslForLinuxFound.waitForExist()
} else if (process.platform === 'darwin') {
await instance.opensslForDarwinFound.waitForExist()
} else if (process.platform === 'win32') {
await instance.opensslForWin32Found.waitForExist()
}
await instance.loadingDataMsg.waitForExist({ reverse: true })
await instance.verifyingOpensslMsg.waitForExist({ reverse: true })
await instance.opensslForLinuxFound.waitForExist({ reverse: true })
await instance.mainPage.waitForExist()
await instance.mainSelectDeviceButton.waitForExist()
await instance.mainSelectVersionButton.waitForExist()
})

it('should click on \'Select version\' button and page change', async () => {
await instance.mainSelectVersionButton.click()
await instance.mainPage.waitForExist({ reverse: true })
})

it('should github\'s ocotcat checker appears', async () => {
await instance.githubOctocatCheckerLogo.waitForExist({ timeout: 3000 })
await expectWDIO(instance.githubOctocatCheckerLogo).toBeDisplayed()
await expectWDIO(instance.githubOctocatCheckerLogo).toHaveText(GITHUB_OCTOCAT)
})

it('should \'Select version\' page appear', async () => {
await instance.selectVersionPage.waitForExist()
await expectWDIO(instance.selectVersionPage).toBeDisplayed()
})

})

0 comments on commit 7e814a8

Please sign in to comment.