Skip to content

Commit

Permalink
4 tests established
Browse files Browse the repository at this point in the history
  • Loading branch information
Mattk70 committed Nov 14, 2024
1 parent 9eebfd9 commit ffd677f
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 60 deletions.
2 changes: 1 addition & 1 deletion playwright.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { defineConfig, PlaywrightTestConfig } from '@playwright/test'
export default defineConfig({
testDir: './test',
maxFailures: 2,
timeout: 10 * 1000,
timeout: 30 * 1000,
use: {
// Maximum time each action such as `click()` can take. Defaults to 0 (no limit).
actionTimeout: 0,
Expand Down
123 changes: 64 additions & 59 deletions test/menu.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,16 @@ test.beforeAll(async () => {
console.log(msg.text())
})
})
await new Promise((resolve) => { const checkPage = setInterval(() => { if (page) { clearInterval(checkPage); resolve(); } }, 1000); });
await new Promise((resolve) => { const checkPage = setInterval(() => { if (page) { clearInterval(checkPage); resolve(); } }, 5000); });

})

test.afterAll(async () => {
//await page.pause()
await electronApp.close()
})

test.describe.configure({ mode: 'parallel' });
test.describe.configure({ mode: 'parallel', retries: 2, timeout: 20_000 });

test('Page title is correct', async () => {
const title = await page.title()
Expand All @@ -87,20 +88,33 @@ async function openExampleFile(){
await page.locator('wave').first().waitFor({state: 'visible'})
}

async function changeSettings(elementID, value, timeout){
async function changeSettings(type, elementID, value, timeout){
elementID = '#' + elementID;
await page.locator('#navbarSettings').click()
await page.selectOption('#' + elementID, value);
if (type === 'select'){
await page.selectOption(elementID, value);
} else if (type === 'switch'){
await page.locator(elementID).setChecked(value);
} else {
await page.locator(elementID).fill(value);
}
await page.locator('#close-settings').click();
// Wait ?
if (timeout) await page.waitForTimeout(timeout);
}

test(`Nocmig analyse works and second result is 61%`, async () => {
await openExampleFile();
await changeSettings('model-to-use', 'chirpity', 5000)
await page.locator('#navbarAnalysis').click();
async function runExampleAnalysis(model){
await openExampleFile()
await changeSettings('select', 'model-to-use', model, 5000)

await page.locator('#navbarAnalysis').click()
await page.locator('#analyse').click()
await page.locator('#resultTableContainer').waitFor({state: 'visible'})
}


test(`Nocmig analyse works and second result is 61%`, async () => {
await runExampleAnalysis('chirpity');
const callID = page.locator('#speciesFilter').getByText('Redwing (call)');
expect(callID).not.toBe(undefined)
const secondResult = await (await page.waitForSelector('#result2 span.confidence-row > span')).textContent()
Expand All @@ -109,12 +123,7 @@ test(`Nocmig analyse works and second result is 61%`, async () => {
})

test(`BirdNET analyse works and second result is 34%`, async () => {
await openExampleFile()
await changeSettings('model-to-use', 'birdnet', 5000)

await page.locator('#navbarAnalysis').click()
await page.locator('#analyse').click()
await page.locator('#resultTableContainer').waitFor({state: 'visible'})
await runExampleAnalysis('birdnet');
const callID = page.locator('#speciesFilter').getByText('Redwing (call)');
expect(callID).not.toBe(undefined)
const secondResult = await (await page.waitForSelector('#result2 span.confidence-row > span')).textContent()
Expand All @@ -123,57 +132,53 @@ test(`BirdNET analyse works and second result is 34%`, async () => {
})



test(`Audacity labels work`, async () => {
// test(`Audacity labels work`, async () => {

// Everything shows 8 rows @ 45%
await page.getByRole('button', { name: 'Settings' }).click();
await page.getByLabel('Show:').selectOption('everything');
await page.waitForFunction(() => donePredicting());
const labels = await page.evaluate(() => getAudacityLabels());
expect(labels.length).toBe(8);
// nocturnal shows 2 rows @ 45%
await page.getByRole('button', { name: 'Settings' }).click();
await page.getByLabel('Show:').selectOption('NOCTURNAL');
await page.waitForFunction(() => donePredicting());
const labels2 = await page.evaluate(() => getAudacityLabels());
expect(labels2.length).toBe(2);
expect(labels2[0].cname).toBe("Redwing (call)")
// reset the list to default
await page.evaluate(() => {
config.list = 'nocturnal'
})
})
// // Everything shows 8 rows @ 45%
// await runExampleAnalysis('chirpity')
// await changeSettings('select', 'list-to-use', 'everything', 500);
// const labels = await page.evaluate(() => window.AUDACITY_LABELS[window.STATE.currentFile]);
// console.log(labels)
// expect(labels.length).toBe(8);
// // nocturnal shows 2 rows @ 45%
// await changeSettings('select', 'list-to-use', 'nocturnal', 500);
// const labels2 = await page.evaluate(() => window.AUDACITY_LABELS[window.STATE.currentFile]);
// expect(labels2.length).toBe(2);
// expect(labels2[0].cname).toBe("Redwing (call)")
// // reset the list to default
// await page.evaluate(() => {
// config.list = 'nocturnal'
// })
// })

test("Amend file start dialog contains date", async () =>{
await page.getByRole('button', { name: 'example.mp3' }).click({
button: 'right'
});
await page.getByText('edit_calendar Amend File Start Time').click();
const fileStart = page.locator('#fileStart')
expect(fileStart).toHaveValue('2023-09-23T08:56')
await page.getByRole('button', { name: 'Cancel' }).click();
await runExampleAnalysis('chirpity');
await page.locator('#dropdownMenuButton').click({button: 'right'});
await page.locator('#setFileStart').click()
const fileStart = await page.locator('#fileStart')
expect(fileStart).toHaveValue('2024-11-06T15:28')
await page.locator('#spectrogramWrapper button.btn-secondary').click();
})

test('Check spectrogram before and after applying filter are different', async () => {
// test('Check spectrogram before and after applying filter are different', async () => {

page = await electronApp.waitForEvent('window')
// take a screenshot of the current page
const screenshot1: Buffer = await page.screenshot()
await page.getByRole('button', { name: 'Settings' }).click();
await page.getByLabel('Low Shelf filter:').fill('1200');
await page.getByLabel('Attenuation:').fill('18');
await page.getByText('blur_on').click();
await page.getByRole('button', { name: 'Settings' }).isHidden();
await page.waitForFunction(() => getFileLoaded());
// take a screenshot of the page after filter applied
const screenshot2: Buffer = await page.screenshot()
// compare the two images
const different = jimp.diff(await jimp.read(screenshot1), await jimp.read(screenshot2), 0.001)
expect(different.percent).toBeGreaterThan(0)
// Reset blur
await page.getByText('blur_on').click();
})
// page = await electronApp.waitForEvent('window')
// // take a screenshot of the current page
// const screenshot1: Buffer = await page.screenshot()
// await page.getByRole('button', { name: 'Settings' }).click();
// await page.getByLabel('Low Shelf filter:').fill('1200');
// await page.getByLabel('Attenuation:').fill('18');
// await page.getByText('blur_on').click();
// await page.getByRole('button', { name: 'Settings' }).isHidden();
// await page.waitForFunction(() => getFileLoaded());
// // take a screenshot of the page after filter applied
// const screenshot2: Buffer = await page.screenshot()
// // compare the two images
// const different = jimp.diff(await jimp.read(screenshot1), await jimp.read(screenshot2), 0.001)
// expect(different.percent).toBeGreaterThan(0)
// // Reset blur
// await page.getByText('blur_on').click();
// })


// test('send IPC message from renderer', async () => {
Expand Down

0 comments on commit ffd677f

Please sign in to comment.