-
Notifications
You must be signed in to change notification settings - Fork 40
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
UI visual regression testing to cover UI widgets visibility #674
base: main
Are you sure you want to change the base?
Conversation
1e9e7d8
to
1ad654b
Compare
1ad654b
to
875268d
Compare
875268d
to
2128799
Compare
2128799
to
5d17d5e
Compare
942fb9f
to
89ac3c3
Compare
uses: actions/setup-python@v5 | ||
with: | ||
python-version: "3.9" | ||
cache: "pip" # caching pip dependencies |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason to use pip
over poetry
here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure about this one as that's how it was done in the guided notebook tests workflow
baf4658
to
cee54a1
Compare
f62e61a
to
ad221de
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a few comments on the test
be97842
to
c0e616f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a nit on the notebook name and verification on cluster deletion.
c0e616f
to
10f4d97
Compare
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
10f4d97
to
d1ae990
Compare
d1ae990
to
bde3957
Compare
bde3957
to
3e07369
Compare
const successMessage = await page.waitForSelector('text=Ray Cluster: \'raytest\' has successfully been created', { timeout: 10000 }); | ||
expect(successMessage).not.toBeNull(); | ||
|
||
const resourcesMessage = await page.waitForSelector('text=Waiting for requested resources to be set up...'); | ||
expect(resourcesMessage).not.toBeNull(); | ||
|
||
const upAndRunningMessage = await page.waitForSelector('text=Requested cluster is up and running!'); | ||
expect(upAndRunningMessage).not.toBeNull(); | ||
|
||
const dashboardReadyMessage = await page.waitForSelector('text=Dashboard is ready!'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we use timeouts for all of these just incase the Dashboard doesn't come up (or someone changes the text but forgets to change the test)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It will still wait for the timeout of the set time out
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, that's fine. I just mean so that if the changes are pushed the test doesn't hang indefinitely waiting for the condition
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But if it wait's for the cluster to be ready and it can take sometime or even fail, what is the timeout for that? The cluster is ready at different time every single time
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2 small comments, other than that, I think this is g2g
} | ||
} | ||
|
||
async function runLastCell(page, cellCount, expectedMessage) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
async function runLastCell(page, cellCount, expectedMessage) { | |
async function runPreviousCell(page, cellCount, expectedMessage) { |
Small nit
import { expect } from "@playwright/test"; | ||
import * as path from "path"; | ||
|
||
test.setTimeout(460000); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add to playwright config as discussed
Issue link
https://issues.redhat.com/browse/RHOAIENG-12525
Depends on:
What changes have been made
Added I visual regression testing to cover UI widgets visibility
Verification steps
Passing tests.
At the moment I have made a separate workflow but I think it would be best to integrate them into the guided notebook tests, as my workflow is almost identical to that one.
Checks