Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First pass audit of most of the playwright tests #1871

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions playwright/tests/admin/interfaces.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
# Copyright 2023 OpenC3, Inc
# Copyright 2025 OpenC3, Inc
# All Rights Reserved.
#
# This program is free software; you can modify and/or redistribute it
Expand All @@ -23,17 +23,17 @@ test.use({
})

test('displays interface names', async ({ page, utils }) => {
expect(await page.getByText('INST_INT')).toBeVisible()
expect(await page.getByText('INST2_INT')).toBeVisible()
expect(await page.getByText('EXAMPLE_INT')).toBeVisible()
expect(await page.getByText('TEMPLATED_INT')).toBeVisible()
await expect(page.getByText('INST_INT')).toBeVisible()
await expect(page.getByText('INST2_INT')).toBeVisible()
await expect(page.getByText('EXAMPLE_INT')).toBeVisible()
await expect(page.getByText('TEMPLATED_INT')).toBeVisible()
// SYSTEM has no interface
expect(await page.getByText('SYSTEM')).not.toBeVisible()
await expect(page.getByText('SYSTEM')).not.toBeVisible()
})

test('displays interface details', async ({ page, utils }) => {
await page.getByRole('button', { name: '󰈈' }).first().click()
expect(await page.locator('.editor')).toContainText('"name": "EXAMPLE_INT"')
await expect(page.locator('.editor')).toContainText('"name": "EXAMPLE_INT"')
await utils.download(page, '[data-test="downloadIcon"]', function (contents) {
expect(contents).toContain('"name": "EXAMPLE_INT"')
})
Expand Down
4 changes: 2 additions & 2 deletions playwright/tests/admin/microservices.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
# Copyright 2024 OpenC3, Inc
# Copyright 2025 OpenC3, Inc
# All Rights Reserved.
#
# This program is free software; you can modify and/or redistribute it
Expand Down Expand Up @@ -55,7 +55,7 @@ test('displays microservice names', async ({ page, utils }) => {

test('displays microservice details', async ({ page, utils }) => {
await page.getByRole('button', { name: '󰈈' }).nth(2).click()
expect(await page.locator('.editor')).toContainText(
await expect(page.locator('.editor')).toContainText(
'"name": "DEFAULT__CLEANUP__INST2"',
)
await utils.download(page, '[data-test="downloadIcon"]', function (contents) {
Expand Down
6 changes: 3 additions & 3 deletions playwright/tests/admin/packages.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
# Copyright 2023 OpenC3, Inc
# Copyright 2025 OpenC3, Inc
# All Rights Reserved.
#
# This program is free software; you can modify and/or redistribute it
Expand All @@ -23,10 +23,10 @@ test.use({
})

test('displays gem names', async ({ page, utils }) => {
expect(await page.locator('[data-test=packageList]')).toContainText(
await expect(page.locator('[data-test=packageList]')).toContainText(
/openc3-cosmos-demo-\d{1,2}\.\d{1,2}\.\d{1,2}.*\.gem/,
)
expect(await page.locator('[data-test=packageList]')).toContainText(
await expect(page.locator('[data-test=packageList]')).toContainText(
/openc3-cosmos-tool-cmdsender-\d{1,2}\.\d{1,2}\.\d{1,2}.*\.gem/,
)
})
Expand Down
2 changes: 1 addition & 1 deletion playwright/tests/admin/redis.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
# Copyright 2023 OpenC3, Inc
# Copyright 2025 OpenC3, Inc
# All Rights Reserved.
#
# This program is free software; you can modify and/or redistribute it
Expand Down
6 changes: 3 additions & 3 deletions playwright/tests/admin/routers.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
# Copyright 2023 OpenC3, Inc
# Copyright 2025 OpenC3, Inc
# All Rights Reserved.
#
# This program is free software; you can modify and/or redistribute it
Expand All @@ -23,12 +23,12 @@ test.use({
})

test('displays router names', async ({ page, utils }) => {
expect(await page.getByText('INST_ROUTER')).toBeVisible()
await expect(page.getByText('INST_ROUTER')).toBeVisible()
})

test('displays router details', async ({ page, utils }) => {
await page.getByRole('button', { name: '󰈈' }).first().click()
expect(await page.locator('.editor')).toContainText('"name": "INST_ROUTER"')
await expect(page.locator('.editor')).toContainText('"name": "INST_ROUTER"')
await utils.download(page, '[data-test="downloadIcon"]', function (contents) {
expect(contents).toContain('"name": "INST_ROUTER"')
})
Expand Down
2 changes: 1 addition & 1 deletion playwright/tests/admin/secrets.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
# Copyright 2023 OpenC3, Inc
# Copyright 2025 OpenC3, Inc
# All Rights Reserved.
#
# This program is free software; you can modify and/or redistribute it
Expand Down
2 changes: 1 addition & 1 deletion playwright/tests/admin/settings.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# GNU Affero General Public License for more details.
#
# Modified by OpenC3, Inc.
# All changes Copyright 2024, OpenC3, Inc.
# All changes Copyright 2025, OpenC3, Inc.
# All Rights Reserved
*/

Expand Down
4 changes: 2 additions & 2 deletions playwright/tests/admin/targets.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
# Copyright 2023 OpenC3, Inc
# Copyright 2025 OpenC3, Inc
# All Rights Reserved.
#
# This program is free software; you can modify and/or redistribute it
Expand Down Expand Up @@ -39,7 +39,7 @@ test('displays target names and associated plugin', async ({ page, utils }) => {

test('displays target details', async ({ page, utils }) => {
await page.locator('.mdi-eye').nth(1).click()
expect(await page.locator('.editor')).toContainText('"name": "INST"')
await expect(page.locator('.editor')).toContainText('"name": "INST"')
await utils.download(page, '[data-test="downloadIcon"]', function (contents) {
expect(contents).toContain('"name": "INST"')
})
Expand Down
2 changes: 1 addition & 1 deletion playwright/tests/admin/tools.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
# Copyright 2023 OpenC3, Inc
# Copyright 2025 OpenC3, Inc
# All Rights Reserved.
#
# This program is free software; you can modify and/or redistribute it
Expand Down
10 changes: 4 additions & 6 deletions playwright/tests/bucket-explorer.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
# Copyright 2023 OpenC3, Inc.
# Copyright 2025 OpenC3, Inc.
# All Rights Reserved.
#
# This program is free software; you can modify and/or redistribute it
Expand Down Expand Up @@ -244,11 +244,9 @@
test('navigate logs and tools bucket', async ({ page, utils }) => {
// Keep clicking alternatively on tools and then logs to force a refresh
// This allows the DEFAULT folder to appear in time
await expect(async () => {
await page.getByText('tools', { exact: true }).click()
await page.getByText('logs', { exact: true }).click()
await expect(page.getByRole('cell', { name: 'DEFAULT' })).toBeVisible()
}).toPass()
await page.getByText('tools', { exact: true }).click()
await page.getByText('logs', { exact: true }).click()
await expect(page.getByRole('cell', { name: 'DEFAULT' })).toBeVisible()

Check failure on line 249 in playwright/tests/bucket-explorer.spec.ts

View workflow job for this annotation

GitHub Actions / openc3-build-test

[chromium] › tests/bucket-explorer.spec.ts:244:5 › navigate logs and tools bucket

1) [chromium] › tests/bucket-explorer.spec.ts:244:5 › navigate logs and tools bucket ───────────── Error: Timed out 10000ms waiting for expect(locator).toBeVisible() Locator: getByRole('cell', { name: 'DEFAULT' }) Expected: visible Received: <element(s) not found> Call log: - expect.toBeVisible with timeout 10000ms - waiting for getByRole('cell', { name: 'DEFAULT' }) 247 | await page.getByText('tools', { exact: true }).click() 248 | await page.getByText('logs', { exact: true }).click() > 249 | await expect(page.getByRole('cell', { name: 'DEFAULT' })).toBeVisible() | ^ 250 | await expect(page).toHaveURL(/.*\/tools\/bucketexplorer\/logs%2F/) 251 | 252 | await page.getByRole('cell', { name: 'DEFAULT' }).click() at /home/runner/work/cosmos/cosmos/playwright/tests/bucket-explorer.spec.ts:249:61

Check failure on line 249 in playwright/tests/bucket-explorer.spec.ts

View workflow job for this annotation

GitHub Actions / openc3-build-test

[chromium] › tests/bucket-explorer.spec.ts:244:5 › navigate logs and tools bucket

1) [chromium] › tests/bucket-explorer.spec.ts:244:5 › navigate logs and tools bucket ───────────── Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: Timed out 10000ms waiting for expect(locator).toBeVisible() Locator: getByRole('cell', { name: 'DEFAULT' }) Expected: visible Received: <element(s) not found> Call log: - expect.toBeVisible with timeout 10000ms - waiting for getByRole('cell', { name: 'DEFAULT' }) 247 | await page.getByText('tools', { exact: true }).click() 248 | await page.getByText('logs', { exact: true }).click() > 249 | await expect(page.getByRole('cell', { name: 'DEFAULT' })).toBeVisible() | ^ 250 | await expect(page).toHaveURL(/.*\/tools\/bucketexplorer\/logs%2F/) 251 | 252 | await page.getByRole('cell', { name: 'DEFAULT' }).click() at /home/runner/work/cosmos/cosmos/playwright/tests/bucket-explorer.spec.ts:249:61
await expect(page).toHaveURL(/.*\/tools\/bucketexplorer\/logs%2F/)

await page.getByRole('cell', { name: 'DEFAULT' }).click()
Expand Down
29 changes: 13 additions & 16 deletions playwright/tests/cmd-tlm-server/cmd-pkts.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# GNU Affero General Public License for more details.
#
# Modified by OpenC3, Inc.
# All changes Copyright 2023, OpenC3, Inc.
# All changes Copyright 2025, OpenC3, Inc.
# All Rights Reserved
*/

Expand Down Expand Up @@ -58,21 +58,20 @@ test('displays the command count', async ({ page, utils }) => {
page.locator('[data-test=cmd-packets-table] >> tbody > tr').count(),
)
.toEqual(2)
const count = parseInt(
await page
.locator('[data-test=cmd-packets-table] >> tr td >> nth=2')
.textContent(),
)
const countStr = await page
.locator('[data-test=cmd-packets-table] >> tr td >> nth=2')
.textContent()
if (countStr === null) {
throw new Error("Unable to get packet count")
}
const count = parseInt(countStr)
// Send an ABORT command
await page.goto('/tools/cmdsender/INST/ABORT', {
waitUntil: 'domcontentloaded',
})
await expect(page.locator('.v-app-bar')).toContainText('Command Sender')
await page.locator('[data-test=select-send]').click()
await expect(page.locator('main')).toContainText('cmd("INST ABORT") sent')
await page
.locator('[data-test="sender-history"] div')
.filter({ hasText: 'cmd("INST ABORT")' })

await page.goto('/tools/cmdtlmserver/cmd-packets', {
waitUntil: 'domcontentloaded',
Expand All @@ -95,14 +94,12 @@ test('displays the command count', async ({ page, utils }) => {
)
.toEqual(2)
await expect
.poll(async () =>
parseInt(
await page
.locator('[data-test=cmd-packets-table] >> tr td >> nth=2')
.textContent(),
),
.poll(async () =>
await page
.locator('[data-test=cmd-packets-table] >> tr td >> nth=2')
.textContent()
)
.toEqual(count + 1)
.toEqual(`${count + 1}`)
})

test('displays a raw command', async ({ page, utils }) => {
Expand Down
2 changes: 1 addition & 1 deletion playwright/tests/cmd-tlm-server/file-menu.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# GNU Affero General Public License for more details.
#
# Modified by OpenC3, Inc.
# All changes Copyright 2023, OpenC3, Inc.
# All changes Copyright 2025, OpenC3, Inc.
# All Rights Reserved
*/

Expand Down
2 changes: 1 addition & 1 deletion playwright/tests/cmd-tlm-server/interfaces.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# GNU Affero General Public License for more details.
#
# Modified by OpenC3, Inc.
# All changes Copyright 2023, OpenC3, Inc.
# All changes Copyright 2025, OpenC3, Inc.
# All Rights Reserved
*/

Expand Down
2 changes: 1 addition & 1 deletion playwright/tests/cmd-tlm-server/targets.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# GNU Affero General Public License for more details.
#
# Modified by OpenC3, Inc.
# All changes Copyright 2023, OpenC3, Inc.
# All changes Copyright 2025, OpenC3, Inc.
# All Rights Reserved
*/

Expand Down
20 changes: 11 additions & 9 deletions playwright/tests/cmd-tlm-server/tlm-pkts.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# GNU Affero General Public License for more details.
#
# Modified by OpenC3, Inc.
# All changes Copyright 2023, OpenC3, Inc.
# All changes Copyright 2025, OpenC3, Inc.
# All Rights Reserved
*/

Expand All @@ -35,14 +35,16 @@ test('displays the list of telemetry', async ({ page, utils }) => {
test('displays the packet count', async ({ page, utils }) => {
await expect(page.locator('text=INSTHEALTH_STATUS')).toBeVisible()
await utils.sleep(2000) // Allow the telemetry to be fetched
expect(
parseInt(
await page.locator('text=INSTHEALTH_STATUS >> td >> nth=2').textContent(),
),
).toBeGreaterThan(50)
expect(
parseInt(await page.locator('text=INSTADCS >> td >> nth=2').textContent()),
).toBeGreaterThan(500)
const hsCountStr = await page.locator('text=INSTHEALTH_STATUS >> td >> nth=2').textContent()
if (hsCountStr === null) {
throw new Error("Unable to get HEALTH_STATUS packet count")
}
expect(parseInt(hsCountStr)).toBeGreaterThan(50)
const adcsCountStr = await page.locator('text=INSTADCS >> td >> nth=2').textContent()
if (adcsCountStr === null) {
throw new Error("Unable to get HEALTH_STATUS packet count")
}
expect(parseInt(adcsCountStr)).toBeGreaterThan(500)
})

test('displays raw packets', async ({ page, utils }) => {
Expand Down
2 changes: 1 addition & 1 deletion playwright/tests/command-sender.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# GNU Affero General Public License for more details.
#
# Modified by OpenC3, Inc.
# All changes Copyright 2023, OpenC3, Inc.
# All changes Copyright 2025, OpenC3, Inc.
# All Rights Reserved
*/

Expand Down Expand Up @@ -215,7 +215,7 @@
await page.locator('text=Ignore Range Checks').click()
await page.locator('[data-test="select-send"]').click()

await expect(page.locator('main')).toContainText(

Check failure on line 218 in playwright/tests/command-sender.spec.ts

View workflow job for this annotation

GitHub Actions / openc3-build-test

[chromium] › tests/command-sender.spec.ts:204:5 › handles NaN and Infinite values

2) [chromium] › tests/command-sender.spec.ts:204:5 › handles NaN and Infinite values ───────────── Error: Timed out 10000ms waiting for expect(locator).toContainText(expected) Locator: locator('main') Expected string: "cmd_no_range_check(\"INST FLTCMD with FLOAT32 NaN, FLOAT64 NaN\") sent" Received string: "Select TargetINSTSelect TargetSelect PacketFLTCMDSelect PacketSendDescription: Command with float parameters Parameters NameValue or StateUnitsRangeDescriptionFLOAT32-3.403e+38..3.403e+38Float32 parameterFLOAT64-1.798e+308..1.798e+308Float64 parameterStatus: Error sending INST FLTCMD due to RuntimeError: Command parameter 'INST FLTCMD FLOAT32' = NaN not in valid range of -3.402823e+38 to 3.402823e+38 Editable Command History: (Pressing Enter on the line re-executes the command) 1  ההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" Call log: - expect.toContainText with timeout 10000ms - waiting for locator('main') 14 × locator resolved to <main class="v-main">…</main> - unexpected value "Select TargetINSTSelect TargetSelect PacketFLTCMDSelect PacketSendDescription: Command with float parameters Parameters NameValue or StateUnitsRangeDescriptionFLOAT32-3.403e+38..3.403e+38Float32 parameterFLOAT64-1.798e+308..1.798e+308Float64 parameterStatus: Error sending INST FLTCMD due to RuntimeError: Command parameter 'INST FLTCMD FLOAT32' = NaN not in valid range of -3.402823e+38 to 3.402823e+38 Editable Command History: (Pressing Enter on the line re-executes the command) 1  ההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" 216 | await page.locator('[data-test="select-send"]').click() 217 | > 218 | await expect(page.locator('main')).toContainText( | ^ 219 | 'cmd_no_range_check("INST FLTCMD with FLOAT32 NaN, FLOAT64 NaN") sent', 220 | ) 221 | await checkHistory( at /home/runner/work/cosmos/cosmos/playwright/tests/command-sender.spec.ts:218:38
'cmd_no_range_check("INST FLTCMD with FLOAT32 NaN, FLOAT64 NaN") sent',
)
await checkHistory(
Expand Down Expand Up @@ -318,7 +318,7 @@
// Send a different command: INST SETPARAMS
await utils.selectTargetPacketItem('INST', 'SETPARAMS')
await page.locator('[data-test="select-send"]').click()
await expect(page.locator('main')).toContainText(

Check failure on line 321 in playwright/tests/command-sender.spec.ts

View workflow job for this annotation

GitHub Actions / openc3-build-test

[chromium] › tests/command-sender.spec.ts:293:5 › executes commands from history

3) [chromium] › tests/command-sender.spec.ts:293:5 › executes commands from history ────────────── Error: Timed out 10000ms waiting for expect(locator).toContainText(expected) Locator: locator('main') Expected string: "cmd(\"INST SETPARAMS with VALUE1 1, VALUE2 1, VALUE3 1, VALUE4 1, VALUE5 1\") sent." Received string: "Select TargetINSTSelect TargetSelect PacketSETPARAMSSelect PacketSendDescription: Sets numbered parameters Parameters NameValue or StateUnitsRangeDescriptionVALUE10..5Value 1 settingVALUE20..5Value 2 settingVALUE30..5Value 3 settingVALUE40..5Value 4 settingVALUE50..5Value 5 settingStatus: Editable Command History: (Pressing Enter on the line re-executes the command) 1cmd(\"INST CLEAR\")  ההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXINST PARAMSParamsVALUE5VALUE5:VALUE4VALUE4:VALUE3VALUE3:VALUE2VALUE2:VALUE1VALUE1:P_2.2,2:P-3+3=3:P4!@#$%^&*?:P</5|\\>:P(:6;):Packet Time" Call log: - expect.toContainText with timeout 10000ms - waiting for locator('main') 14 × locator resolved to <main class="v-main">…</main> - unexpected value "Select TargetINSTSelect TargetSelect PacketSETPARAMSSelect PacketSendDescription: Sets numbered parameters Parameters NameValue or StateUnitsRangeDescriptionVALUE10..5Value 1 settingVALUE20..5Value 2 settingVALUE30..5Value 3 settingVALUE40..5Value 4 settingVALUE50..5Value 5 settingStatus: Editable Command History: (Pressing Enter on the line re-executes the command) 1cmd("INST CLEAR")  ההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXINST PARAMSParamsVALUE5VALUE5:VALUE4VALUE4:VALUE3VALUE3:VALUE2VALUE2:VALUE1VALUE1:P_2.2,2:P-3+3=3:P4!@#$%^&*?:P</5|\>:P(:6;):Packet Time" 319 | await utils.selectTargetPacketItem('INST', 'SETPARAMS') 320 | await page.locator('[data-test="select-send"]').click() > 321 | await expect(page.locator('main')).toContainText( | ^ 322 | 'cmd("INST SETPARAMS with VALUE1 1, VALUE2 1, VALUE3 1, VALUE4 1, VALUE5 1") sent.', 323 | ) 324 | // History should now contain both commands at /home/runne
'cmd("INST SETPARAMS with VALUE1 1, VALUE2 1, VALUE3 1, VALUE4 1, VALUE5 1") sent.',
)
// History should now contain both commands
Expand Down
14 changes: 5 additions & 9 deletions playwright/tests/data-extractor.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# GNU Affero General Public License for more details.
#
# Modified by OpenC3, Inc.
# All changes Copyright 2024, OpenC3, Inc.
# All changes Copyright 2025, OpenC3, Inc.
# All Rights Reserved
*/

Expand Down Expand Up @@ -73,9 +73,9 @@
// Firefox doesn't appear to limit at all so you need to enter entire date
// End result is that in Chromium the date gets entered as the 2 digit year
// e.g. "22", which is fine because even if you go big it will round down.
await page.locator('[data-test=start-date]').type(format(d, 'MM'))
await page.locator('[data-test=start-date]').type(format(d, 'dd'))
await page.locator('[data-test=start-date]').type(format(d, 'yyyy'))
// The 'yyyy-MM-dd' format isn't how the date is displayed, but that's how it's
// filled programatically. (https://github.com/microsoft/playwright/pull/1676)

Check failure on line 77 in playwright/tests/data-extractor.spec.ts

View workflow job for this annotation

GitHub Actions / Codespell

programatically ==> programmatically
await page.locator('[data-test=start-date] input').fill(format(d, 'yyyy-MM-dd'))
await expect(page.locator('text=Required')).not.toBeVisible()
// Time validation
await page.locator('[data-test=start-time] input').fill('')
Expand Down Expand Up @@ -216,11 +216,7 @@
await page.goto('/tools/cmdsender/INST/ABORT')
await expect(page.locator('.v-app-bar')).toContainText('Command Sender')
await page.locator('[data-test=select-send]').click()
await page.locator('text=cmd("INST ABORT") sent')
await utils.sleep(1000)
await page
.locator('[data-test=sender-history] div')
.filter({ hasText: 'cmd("INST ABORT")' })
await expect(page.locator('text=cmd("INST ABORT") sent')).toBeVisible()

const start = sub(new Date(), { minutes: 1 })
await page.goto('/tools/dataextractor')
Expand Down
Loading
Loading