mirror of
https://github.com/nasa/openmct.git
synced 2025-06-27 11:32:13 +00:00
Compare commits
3 Commits
remove-dep
...
e2e-add-re
Author | SHA1 | Date | |
---|---|---|---|
f146f07fcd | |||
599b1865b6 | |||
eab6071095 |
@ -228,18 +228,14 @@ async function _isInEditMode(page, identifier) {
|
|||||||
/**
|
/**
|
||||||
* Set the time conductor mode to either fixed timespan or realtime mode.
|
* Set the time conductor mode to either fixed timespan or realtime mode.
|
||||||
* @param {import('@playwright/test').Page} page
|
* @param {import('@playwright/test').Page} page
|
||||||
* @param {boolean} [isFixedTimespan=true] true for fixed timespan mode, false for realtime mode; default is true
|
* @param {'fixed'|'local-clock'|'remote-clock'} [clockType='fixed'] the clock type to set the time conductor to. default: 'fixed'
|
||||||
*/
|
*/
|
||||||
async function setTimeConductorMode(page, isFixedTimespan = true) {
|
async function setTimeConductorMode(page, clockType = 'fixed') {
|
||||||
// Click 'mode' button
|
// Click 'mode' button
|
||||||
await page.locator('.c-mode-button').click();
|
await page.locator('.c-mode-button').click();
|
||||||
|
|
||||||
// Switch time conductor mode
|
// Switch time conductor mode
|
||||||
if (isFixedTimespan) {
|
await page.locator(`data-testid=conductor-modeOption-${clockType}`).click();
|
||||||
await page.locator('data-testid=conductor-modeOption-fixed').click();
|
|
||||||
} else {
|
|
||||||
await page.locator('data-testid=conductor-modeOption-realtime').click();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -247,15 +243,23 @@ async function setTimeConductorMode(page, isFixedTimespan = true) {
|
|||||||
* @param {import('@playwright/test').Page} page
|
* @param {import('@playwright/test').Page} page
|
||||||
*/
|
*/
|
||||||
async function setFixedTimeMode(page) {
|
async function setFixedTimeMode(page) {
|
||||||
await setTimeConductorMode(page, true);
|
await setTimeConductorMode(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the time conductor to realtime mode
|
* Set the time conductor to local clock mode
|
||||||
* @param {import('@playwright/test').Page} page
|
* @param {import('@playwright/test').Page} page
|
||||||
*/
|
*/
|
||||||
async function setRealTimeMode(page) {
|
async function setLocalClockMode(page) {
|
||||||
await setTimeConductorMode(page, false);
|
await setTimeConductorMode(page, 'local-clock');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the time conductor to remote clock mode
|
||||||
|
* @param {import('@playwright/test').Page} page
|
||||||
|
*/
|
||||||
|
async function setRemoteClockMode(page) {
|
||||||
|
await setTimeConductorMode(page, 'remote-clock');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -318,7 +322,8 @@ module.exports = {
|
|||||||
getHashUrlToDomainObject,
|
getHashUrlToDomainObject,
|
||||||
getFocusedObjectUuid,
|
getFocusedObjectUuid,
|
||||||
setFixedTimeMode,
|
setFixedTimeMode,
|
||||||
setRealTimeMode,
|
setLocalClockMode,
|
||||||
|
setRemoteClockMode,
|
||||||
setStartOffset,
|
setStartOffset,
|
||||||
setEndOffset
|
setEndOffset
|
||||||
};
|
};
|
||||||
|
@ -22,10 +22,19 @@
|
|||||||
|
|
||||||
// FIXME: Remove this eslint exception once tests are implemented
|
// FIXME: Remove this eslint exception once tests are implemented
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
const { setRemoteClockMode } = require('../../../../appActions');
|
||||||
const { test, expect } = require('../../../../baseFixtures');
|
const { test, expect } = require('../../../../baseFixtures');
|
||||||
|
// const path = require('path');
|
||||||
|
|
||||||
test.describe('Remote Clock', () => {
|
test.describe('Remote Clock', () => {
|
||||||
// eslint-disable-next-line require-await
|
// test.use({ storageState: path.join(__dirname, '../../../../test-data/RemoteClockTestData_storage.json')});
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
test.beforeEach(async ({ page }) => {
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
// await page.addInitScript({ path: path.join(__dirname, '../../../../helper/', 'addInitRemoteClock.js') });
|
||||||
|
await page.goto('./', { waitUntil: 'networkidle' });
|
||||||
|
});
|
||||||
|
|
||||||
test.fixme('blocks historical requests until first tick is received', async ({ page }) => {
|
test.fixme('blocks historical requests until first tick is received', async ({ page }) => {
|
||||||
test.info().annotations.push({
|
test.info().annotations.push({
|
||||||
type: 'issue',
|
type: 'issue',
|
||||||
@ -33,7 +42,11 @@ test.describe('Remote Clock', () => {
|
|||||||
});
|
});
|
||||||
// addInitScript to with remote clock
|
// addInitScript to with remote clock
|
||||||
// Switch time conductor mode to 'remote clock'
|
// Switch time conductor mode to 'remote clock'
|
||||||
|
await setRemoteClockMode(page);
|
||||||
// Navigate to telemetry
|
// Navigate to telemetry
|
||||||
|
await page.click('role=treeitem[name=/Remote Clock Ticker/]');
|
||||||
|
await page.reload();
|
||||||
|
|
||||||
// Verify that the plot renders historical data within the correct bounds
|
// Verify that the plot renders historical data within the correct bounds
|
||||||
// Refresh the page
|
// Refresh the page
|
||||||
// Verify again that the plot renders historical data within the correct bounds
|
// Verify again that the plot renders historical data within the correct bounds
|
||||||
|
@ -21,13 +21,13 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
const { test, expect } = require('../../../../pluginFixtures');
|
const { test, expect } = require('../../../../pluginFixtures');
|
||||||
const { createDomainObjectWithDefaults, setStartOffset, setFixedTimeMode, setRealTimeMode } = require('../../../../appActions');
|
const { createDomainObjectWithDefaults, setStartOffset, setFixedTimeMode, setLocalClockMode } = require('../../../../appActions');
|
||||||
|
|
||||||
test.describe('Testing Display Layout @unstable', () => {
|
test.describe('Testing Display Layout @unstable', () => {
|
||||||
let sineWaveObject;
|
let sineWaveObject;
|
||||||
test.beforeEach(async ({ page }) => {
|
test.beforeEach(async ({ page }) => {
|
||||||
await page.goto('./', { waitUntil: 'networkidle' });
|
await page.goto('./', { waitUntil: 'networkidle' });
|
||||||
await setRealTimeMode(page);
|
await setLocalClockMode(page);
|
||||||
|
|
||||||
// Create Sine Wave Generator
|
// Create Sine Wave Generator
|
||||||
sineWaveObject = await createDomainObjectWithDefaults(page, {
|
sineWaveObject = await createDomainObjectWithDefaults(page, {
|
||||||
|
@ -160,7 +160,7 @@ test.describe('Example Imagery Object', () => {
|
|||||||
await page.locator('.c-mode-button').click();
|
await page.locator('.c-mode-button').click();
|
||||||
|
|
||||||
// Click local clock
|
// Click local clock
|
||||||
await page.locator('[data-testid="conductor-modeOption-realtime"]').click();
|
await page.locator('[data-testid="conductor-modeOption-local-clock"]').click();
|
||||||
await expect.soft(pausePlayButton).not.toHaveClass(/is-paused/);
|
await expect.soft(pausePlayButton).not.toHaveClass(/is-paused/);
|
||||||
|
|
||||||
// Zoom in via button
|
// Zoom in via button
|
||||||
@ -412,7 +412,7 @@ async function performImageryViewOperationsAndAssert(page) {
|
|||||||
await page.locator('.c-mode-button').click();
|
await page.locator('.c-mode-button').click();
|
||||||
|
|
||||||
// Select local clock mode
|
// Select local clock mode
|
||||||
await page.locator('[data-testid=conductor-modeOption-realtime]').click();
|
await page.locator('[data-testid=conductor-modeOption-local-clock]').click();
|
||||||
|
|
||||||
// Zoom in on next image
|
// Zoom in on next image
|
||||||
await mouseZoomOnImageAndAssert(page, 2);
|
await mouseZoomOnImageAndAssert(page, 2);
|
||||||
|
@ -21,13 +21,13 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
const { test, expect } = require('../../../../pluginFixtures');
|
const { test, expect } = require('../../../../pluginFixtures');
|
||||||
const { createDomainObjectWithDefaults, setStartOffset, setFixedTimeMode, setRealTimeMode } = require('../../../../appActions');
|
const { createDomainObjectWithDefaults, setStartOffset, setFixedTimeMode, setLocalClockMode } = require('../../../../appActions');
|
||||||
|
|
||||||
test.describe('Testing LAD table @unstable', () => {
|
test.describe('Testing LAD table @unstable', () => {
|
||||||
let sineWaveObject;
|
let sineWaveObject;
|
||||||
test.beforeEach(async ({ page }) => {
|
test.beforeEach(async ({ page }) => {
|
||||||
await page.goto('./', { waitUntil: 'networkidle' });
|
await page.goto('./', { waitUntil: 'networkidle' });
|
||||||
await setRealTimeMode(page);
|
await setLocalClockMode(page);
|
||||||
|
|
||||||
// Create Sine Wave Generator
|
// Create Sine Wave Generator
|
||||||
sineWaveObject = await createDomainObjectWithDefaults(page, {
|
sineWaveObject = await createDomainObjectWithDefaults(page, {
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
const { test, expect } = require('../../../../baseFixtures');
|
const { test, expect } = require('../../../../baseFixtures');
|
||||||
const { setFixedTimeMode, setRealTimeMode, setStartOffset, setEndOffset } = require('../../../../appActions');
|
const { setFixedTimeMode, setLocalClockMode, setStartOffset, setEndOffset } = require('../../../../appActions');
|
||||||
|
|
||||||
test.describe('Time conductor operations', () => {
|
test.describe('Time conductor operations', () => {
|
||||||
test('validate start time does not exceeds end time', async ({ page }) => {
|
test('validate start time does not exceeds end time', async ({ page }) => {
|
||||||
@ -85,7 +85,7 @@ test.describe('Time conductor input fields real-time mode', () => {
|
|||||||
await page.goto('./', { waitUntil: 'networkidle' });
|
await page.goto('./', { waitUntil: 'networkidle' });
|
||||||
|
|
||||||
// Switch to real-time mode
|
// Switch to real-time mode
|
||||||
await setRealTimeMode(page);
|
await setLocalClockMode(page);
|
||||||
|
|
||||||
// Set start time offset
|
// Set start time offset
|
||||||
await setStartOffset(page, startOffset);
|
await setStartOffset(page, startOffset);
|
||||||
@ -122,7 +122,7 @@ test.describe('Time conductor input fields real-time mode', () => {
|
|||||||
await page.goto('./', { waitUntil: 'networkidle' });
|
await page.goto('./', { waitUntil: 'networkidle' });
|
||||||
|
|
||||||
// Switch to real-time mode
|
// Switch to real-time mode
|
||||||
await setRealTimeMode(page);
|
await setLocalClockMode(page);
|
||||||
|
|
||||||
// Set start time offset
|
// Set start time offset
|
||||||
await setStartOffset(page, startOffset);
|
await setStartOffset(page, startOffset);
|
||||||
@ -134,7 +134,7 @@ test.describe('Time conductor input fields real-time mode', () => {
|
|||||||
await setFixedTimeMode(page);
|
await setFixedTimeMode(page);
|
||||||
|
|
||||||
// Switch back to real-time mode
|
// Switch back to real-time mode
|
||||||
await setRealTimeMode(page);
|
await setLocalClockMode(page);
|
||||||
|
|
||||||
// Verify updated start time offset persists after mode switch
|
// Verify updated start time offset persists after mode switch
|
||||||
await expect(page.locator('data-testid=conductor-start-offset-button')).toContainText('00:30:23');
|
await expect(page.locator('data-testid=conductor-start-offset-button')).toContainText('00:30:23');
|
||||||
|
@ -117,7 +117,7 @@ export default {
|
|||||||
description: "Monitor streaming data in real-time. The Time "
|
description: "Monitor streaming data in real-time. The Time "
|
||||||
+ "Conductor and displays will automatically advance themselves based on this clock. " + clock.description,
|
+ "Conductor and displays will automatically advance themselves based on this clock. " + clock.description,
|
||||||
cssClass: clock.cssClass || 'icon-clock',
|
cssClass: clock.cssClass || 'icon-clock',
|
||||||
testId: 'conductor-modeOption-realtime',
|
testId: `conductor-modeOption-${clock.name.toLowerCase().replace(' ', '-')}`,
|
||||||
onItemClicked: () => this.setOption(key)
|
onItemClicked: () => this.setOption(key)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user