test(e2e): fix ITC imagery test

This commit is contained in:
Jesse Mazzella 2023-07-20 14:37:04 -07:00
parent 99cb90987a
commit dc0f461d9f

View File

@ -27,7 +27,7 @@ but only assume that example imagery is present.
/* globals process */
const { waitForAnimations } = require('../../../../baseFixtures');
const { test, expect } = require('../../../../pluginFixtures');
const { createDomainObjectWithDefaults } = require('../../../../appActions');
const { createDomainObjectWithDefaults, setRealTimeMode } = require('../../../../appActions');
const backgroundImageSelector = '.c-imagery__main-image__background-image';
const panHotkey = process.platform === 'linux' ? ['Shift', 'Alt'] : ['Alt'];
const tagHotkey = ['Shift', 'Alt'];
@ -49,6 +49,7 @@ test.describe('Example Imagery Object', () => {
});
test('Can use Mouse Wheel to zoom in and out of latest image', async ({ page }) => {
page.waitForResponse('')
// Zoom in x2 and assert
await mouseZoomOnImageAndAssert(page, 2);
@ -70,7 +71,7 @@ test.describe('Example Imagery Object', () => {
await dragContrastSliderAndAssertFilterValues(page);
});
test.fixme('Can use independent time conductor to change time', async ({ page }) => {
test('Can use independent time conductor to change time', async ({ page }) => {
test.info().annotations.push({
type: 'issue',
description: 'https://github.com/nasa/openmct/issues/6821'
@ -79,10 +80,18 @@ test.describe('Example Imagery Object', () => {
// flip on independent time conductor
await page.getByRole('switch', { name: 'Enable Independent Time Conductor' }).click();
await page.getByRole('button', { name: 'Independent Time Conductor Settings' }).click();
await page.getByRole('textbox', { name: 'Start date' }).click();
await page.getByRole('textbox', { name: 'Start date' }).fill('');
await page.getByRole('textbox', { name: 'Start date' }).fill('2021-12-30');
await page.getByRole('textbox', { name: 'Start time' }).fill('01:01:00.000Z');
await page.getByRole('textbox', { name: 'Start time' }).click();
await page.getByRole('textbox', { name: 'Start time' }).fill('');
await page.getByRole('textbox', { name: 'Start time' }).fill('01:01:00');
await page.getByRole('textbox', { name: 'End date' }).click();
await page.getByRole('textbox', { name: 'End date' }).fill('');
await page.getByRole('textbox', { name: 'End date' }).fill('2021-12-30');
await page.getByRole('textbox', { name: 'End time' }).fill('01:11:00.000Z');
await page.getByRole('textbox', { name: 'End time' }).click();
await page.getByRole('textbox', { name: 'End time' }).fill('');
await page.getByRole('textbox', { name: 'End time' }).fill('01:11:00');
await page.getByRole('button', { name: 'Submit time bounds' }).click();
// check image date
@ -94,30 +103,31 @@ test.describe('Example Imagery Object', () => {
await expect(page.getByText('2021-12-30 01:11:00.000Z')).toBeHidden();
// Test independent fixed time with global realtime
await page.getByRole('button', { name: /Fixed Timespan/ }).click();
await page.getByRole('menuitem', { name: /Real-Time/ }).click();
await page.getByTitle('Enable independent Time Conductor').locator('label').click();
await setRealTimeMode(page);
await page.getByRole('switch', { name: 'Enable Independent Time Conductor' }).click();
// check image date to be in the past
await expect(page.getByText('2021-12-30 01:11:00.000Z').first()).toBeVisible();
// flip it off
await page.getByTitle('Disable independent Time Conductor').locator('label').click();
await page.getByRole('switch', { name: 'Disable Independent Time Conductor' }).click();
// timestamp shouldn't be in the past anymore
await expect(page.getByText('2021-12-30 01:11:00.000Z')).toBeHidden();
// Test independent realtime with global realtime
await page.getByTitle('Enable independent Time Conductor').locator('label').click();
await page.getByRole('switch', { name: 'Enable Independent Time Conductor' }).click();
// check image date
await expect(page.getByText('2021-12-30 01:11:00.000Z').first()).toBeVisible();
// change independent time to realtime
await page.getByRole('button', { name: /Fixed Timespan/ }).click();
await page.getByRole('menuitem', { name: /Local Clock/ }).click();
await page.getByRole('button', { name: 'Independent Time Conductor Settings' }).click();
await page.getByRole('button', { name: "Independent Time Conductor Mode Menu" }).click();
await page.getByRole('menuitem', { name: /Real-Time/ }).click();
// timestamp shouldn't be in the past anymore
await expect(page.getByText('2021-12-30 01:11:00.000Z')).toBeHidden();
// back to the past
await page.getByRole('button', { name: "Independent Time Conductor Mode Menu" }).click();
await page
.getByRole('button', { name: /Local Clock/ })
.first()
.click();
.getByRole('menuitem', { name: /Real-Time/ })
.click();
await page.getByRole('button', { name: "Independent Time Conductor Mode Menu" }).click();
await page.getByRole('menuitem', { name: /Fixed Timespan/ }).click();
// check image date to be in the past
await expect(page.getByText('2021-12-30 01:11:00.000Z').first()).toBeVisible();
@ -254,7 +264,7 @@ test.describe('Example Imagery Object', () => {
test('Uses low fetch priority', async ({ page }) => {
const priority = await page.locator('.js-imageryView-image').getAttribute('fetchpriority');
await expect(priority).toBe('low');
expect(priority).toBe('low');
});
});
@ -288,7 +298,7 @@ test.describe('Example Imagery in Display Layout', () => {
await setRealTimeMode(page);
// pause/play button
const pausePlayButton = await page.locator('.c-button.pause-play');
const pausePlayButton = page.locator('.c-button.pause-play');
await expect.soft(pausePlayButton).not.toHaveClass(/is-paused/);
@ -311,7 +321,7 @@ test.describe('Example Imagery in Display Layout', () => {
await setRealTimeMode(page);
// pause/play button
const pausePlayButton = await page.locator('.c-button.pause-play');
const pausePlayButton = page.locator('.c-button.pause-play');
await pausePlayButton.click();
await expect.soft(pausePlayButton).toHaveClass(/is-paused/);
@ -935,15 +945,3 @@ async function createImageryView(page) {
page.waitForSelector('.c-message-banner__message')
]);
}
/**
* @param {import('@playwright/test').Page} page
*/
async function setRealTimeMode(page) {
await page.locator('.c-compact-tc').click();
await page.waitForSelector('.c-tc-input-popup', { state: 'visible' });
// Click mode dropdown
await page.getByRole('button', { name: ' Fixed Timespan ' }).click();
// Click realtime
await page.getByRole('menuitem', { name: /Real-Time/ }).click();
}