Skip to content

Commit

Permalink
added tests when user clicks select device button on 3 OS
Browse files Browse the repository at this point in the history
  • Loading branch information
qlrd committed Aug 8, 2023
1 parent 5069ede commit a119899
Show file tree
Hide file tree
Showing 3 changed files with 189 additions and 7 deletions.
12 changes: 6 additions & 6 deletions src/pages/SelectDevice.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<template>
<v-item-group>
<v-item-group id="select-device-page">
<v-container>
<v-row v-for="(device, i) in devices" :key="i">
<v-col>
Expand All @@ -8,10 +8,10 @@
variant="outlined"
:class="[selectedClass]"
@click.prevent="selectDevice(device)"
:id="`select-device-${device}-button`"
:id="`select-device-page-${device}-button`"
>
<v-card-title
:id="`select-device-${device}-title`"
:id="`select-device-page-${device}-text`"
>
{{ device }}
</v-card-title>
Expand All @@ -26,10 +26,10 @@
variant="outlined"
:class="[selectedClass]"
@click.prevent="back()"
id="select-device-back-button"
id="select-device-page-back-button"
>
<v-card-title
id="select-device-back-title"
id="select-device-page-back-text"
>
Back
</v-card-title>
Expand Down Expand Up @@ -64,4 +64,4 @@ async function selectDevice (device: string) {
async function back () {
await window.api.invoke('krux:change:page', { page: 'Main' })
}
</script>
</script>
80 changes: 79 additions & 1 deletion test/e2e/pageobjects/app.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,19 @@ class App {
private __main_page_select_version_text__: string;
private __main_page_flash_button__: string;
private __main_page_flash_text__: string;
private __select_device_page__: string;
private __select_device_page_maixpy_m5stickv_button__: string;
private __select_device_page_maixpy_amigo_ips_button__: string;
private __select_device_page_maixpy_amigo_tft_button__: string;
private __select_device_page_maixpy_bit_button__: string;
private __select_device_page_maixpy_dock_button__: string;
private __select_device_page_maixpy_back_button__: string;
private __select_device_page_maixpy_m5stickv_text__: string;
private __select_device_page_maixpy_amigo_ips_text__: string;
private __select_device_page_maixpy_amigo_tft_text__: string;
private __select_device_page_maixpy_bit_text__: string;
private __select_device_page_maixpy_dock_text__: string;
private __select_device_page_maixpy_back_text__: string;

constructor () {
this.__app__ = '#app'
Expand All @@ -36,7 +49,19 @@ class App {
this.__main_page_select_version_text__ = 'div#main-page-select-version-text'
this.__main_page_flash_button__ = 'div#main-page-flash-button'
this.__main_page_flash_text__ = 'div#main-page-flash-text'

this.__select_device_page__ = 'div#select-device-page';
this.__select_device_page_maixpy_m5stickv_button__ = 'div#select-device-page-maixpy_m5stickv-button'
this.__select_device_page_maixpy_amigo_ips_button__ = 'div#select-device-page-maixpy_amigo_ips-button'
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_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'
}

get title () {
Expand Down Expand Up @@ -106,6 +131,59 @@ class App {
get mainSelectFlashText () {
return $(this.__main_page_flash_text__)
}

get selectDevicePage () {
return $(this.__select_device_page__)
}

get selectMaixpyM5StickVButton () {
return $(this.__select_device_page_maixpy_m5stickv_button__)
}

get selectMaixpyAmigoIpsButton () {
return $(this.__select_device_page_maixpy_amigo_ips_button__)
}

get selectMaixpyAmigoTftButton () {
return $(this.__select_device_page_maixpy_amigo_tft_button__)
}

get selectMaixpyBitButton () {
return $(this.__select_device_page_maixpy_bit_button__)
}

get selectMaixpyDockButton () {
return $(this.__select_device_page_maixpy_dock_button__)
}

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

get selectMaixpyM5StickVText () {
return $(this.__select_device_page_maixpy_m5stickv_text__)
}

get selectMaixpyAmigoIpsText () {
return $(this.__select_device_page_maixpy_amigo_ips_text__)
}

get selectMaixpyAmigoTftText () {
return $(this.__select_device_page_maixpy_amigo_tft_text__)
}

get selectMaixpyBitText () {
return $(this.__select_device_page_maixpy_bit_text__)
}

get selectMaixpyDockText () {
return $(this.__select_device_page_maixpy_dock_text__)
}

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

}

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

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

const SELECT_DEVICE_TEXT = 'Select device'
const SELECT_VERSION_TEXT = 'Select version'
const PLEASE_SELECT_VERSION_MESSAGE = 'Please click \'Select version\' to download sources'

describe('KruxInstaller Main page', () => {

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 device\' button and page change', async () => {
await instance.mainSelectDeviceButton.click()
await instance.mainPage.waitForExist({ reverse: true })
await instance.selectDevicePage.waitForExist()
await expectWDIO(instance.selectDevicePage).toBeDisplayed()
})

it('should \'maixpy_m5stickv\' button be displayed', async () => {
await instance.selectMaixpyM5StickVButton.waitForExist()
await expectWDIO(instance.selectMaixpyM5StickVButton).toBeDisplayed()
})

it('should \'maixpy_m5stickv\' button have \'maixpy_m5stickv\' text', async () => {
await instance.selectMaixpyM5StickVText.waitForExist()
await expectWDIO(instance.selectMaixpyM5StickVText).toHaveText('maixpy_m5stickv')
})

it('should \'maixpy_amigo_ips\' button be displayed', async () => {
await instance.selectMaixpyAmigoIpsButton.waitForExist()
await expectWDIO(instance.selectMaixpyAmigoIpsButton).toBeDisplayed()
})

it('should \'maixpy_amigo_ips\' button have \'maixpy_amigo_ips\' text', async () => {
await instance.selectMaixpyAmigoIpsText.waitForExist()
await expectWDIO(instance.selectMaixpyAmigoIpsText).toHaveText('maixpy_amigo_ips')
})

it('should \'maixpy_amigo_tft\' button be displayed', async () => {
await instance.selectMaixpyAmigoTftButton.waitForExist()
await expectWDIO(instance.selectMaixpyAmigoTftButton).toBeDisplayed()
})

it('should \'maixpy_amigo_tft\' button have \'maixpy_amigo_tft\' text', async () => {
await instance.selectMaixpyAmigoTftText.waitForExist()
await expectWDIO(instance.selectMaixpyAmigoTftText).toHaveText('maixpy_amigo_tft')
})

it('should \'maixpy_bit\' button be displayed', async () => {
await instance.selectMaixpyBitButton.waitForExist()
await expectWDIO(instance.selectMaixpyBitButton).toBeDisplayed()
})

it('should \'maixpy_bit\' button have \'maixpy_bit\' text', async () => {
await instance.selectMaixpyBitText.waitForExist()
await expectWDIO(instance.selectMaixpyBitText).toHaveText('maixpy_bit')
})

it('should \'maixpy_dock\' button be displayed', async () => {
await instance.selectMaixpyDockButton.waitForExist()
await expectWDIO(instance.selectMaixpyDockButton).toBeDisplayed()
})

it('should \'maixpy_dock\' button have \'maixpy_dock\' text', async () => {
await instance.selectMaixpyDockText.waitForExist()
await expectWDIO(instance.selectMaixpyDockText).toHaveText('maixpy_dock')
})

it('should \'back\' button be displayed', async () => {
await instance.selectBackButton.waitForExist()
await expectWDIO(instance.selectBackButton).toBeDisplayed()
})

it('should \'back\' button have \'back\' text', async () => {
await instance.selectBackText.waitForExist()
await expectWDIO(instance.selectBackText).toHaveText('Back')
})
})

0 comments on commit a119899

Please sign in to comment.