More e2e fixes
This commit is contained in:
		| @ -15,6 +15,7 @@ test.describe( | ||||
|       page: Page, | ||||
|       homePage: HomePageFixture, | ||||
|       scene: SceneFixture, | ||||
|       toolbar: ToolbarFixture, | ||||
|       plane: string, | ||||
|       clickCoords: { x: number; y: number } | ||||
|     ) => { | ||||
| @ -59,9 +60,12 @@ test.describe( | ||||
|       await u.sendCustomCmd(updateCamCommand) | ||||
|  | ||||
|       await u.closeDebugPanel() | ||||
|  | ||||
|       await page.mouse.click(clickCoords.x, clickCoords.y) | ||||
|       await page.waitForTimeout(600) // wait for animation | ||||
|  | ||||
|       await toolbar.waitUntilSketchingReady() | ||||
|  | ||||
|       await expect( | ||||
|         page.getByRole('button', { name: 'line Line', exact: true }) | ||||
|       ).toBeVisible() | ||||
| @ -117,11 +121,12 @@ test.describe( | ||||
|     ] | ||||
|  | ||||
|     for (const config of planeConfigs) { | ||||
|       test(config.plane, async ({ page, homePage, scene }) => { | ||||
|       test(config.plane, async ({ page, homePage, scene, toolbar }) => { | ||||
|         await sketchOnPlaneAndBackSideTest( | ||||
|           page, | ||||
|           homePage, | ||||
|           scene, | ||||
|           toolbar, | ||||
|           config.plane, | ||||
|           config.coords | ||||
|         ) | ||||
|  | ||||
| @ -83,7 +83,7 @@ sketch001 = startSketchOn(XY) | ||||
|     ).toHaveCount(1) | ||||
|     await expect( | ||||
|       page.locator('[data-message-type="execution-done"]') | ||||
|     ).toHaveCount(2) | ||||
|     ).toHaveCount(1) | ||||
|  | ||||
|     // Add whitespace to the end of the code. | ||||
|     await u.codeLocator.click() | ||||
|  | ||||
| @ -86,7 +86,7 @@ test.describe('Feature Tree pane', () => { | ||||
|           sortBy: 'last-modified-desc', | ||||
|         }) | ||||
|         await homePage.openProject('test-sample') | ||||
|         await scene.settled(cmdBar) | ||||
|         // await scene.connectionEstablished() | ||||
|         await editor.closePane() | ||||
|         await toolbar.openFeatureTreePane() | ||||
|       }) | ||||
|  | ||||
| @ -179,6 +179,13 @@ export class ElectronZoo { | ||||
|  | ||||
|     await this.context.tracing.startChunk() | ||||
|  | ||||
|     // THIS IS ABSOLUTELY NECESSARY TO CHANGE THE PROJECT DIRECTORY BETWEEN | ||||
|     // TESTS BECAUSE OF THE ELECTRON INSTANCE REUSE. | ||||
|     await this.electron?.evaluate(({ app }, projectDirName) => { | ||||
|       // @ts-ignore can't declaration merge see main.ts | ||||
|       app.testProperty['TEST_SETTINGS_FILE_KEY'] = projectDirName | ||||
|     }, this.projectDirName) | ||||
|  | ||||
|     await setup(this.context, this.page, this.projectDirName, testInfo) | ||||
|  | ||||
|     await this.cleanProjectDir() | ||||
| @ -209,14 +216,6 @@ export class ElectronZoo { | ||||
|  | ||||
|     await this.page.setBodyDimensions(this.viewPortSize) | ||||
|  | ||||
|     // THIS IS ABSOLUTELY NECESSARY TO CHANGE THE PROJECT DIRECTORY BETWEEN | ||||
|     // TESTS BECAUSE OF THE ELECTRON INSTANCE REUSE. | ||||
|     await this.electron?.evaluate(({ app }, projectDirName) => { | ||||
|       // @ts-ignore can't declaration merge see main.ts | ||||
|       app.testProperty['TEST_SETTINGS_FILE_KEY'] = projectDirName | ||||
|     }, this.projectDirName) | ||||
|  | ||||
|  | ||||
|     this.context.folderSetupFn = async function (fn) { | ||||
|       return fn(that.projectDirName) | ||||
|         .then(() => that.page.reload()) | ||||
|  | ||||
| @ -7,7 +7,7 @@ import { expect, test } from '@e2e/playwright/zoo-test' | ||||
| test( | ||||
|   'When machine-api server not found butt is disabled and shows the reason', | ||||
|   { tag: '@electron' }, | ||||
|   async ({ scene, cmdBar,  context, page }, testInfo) => { | ||||
|   async ({ context, page, scene, cmdBar }, testInfo) => { | ||||
|     await context.folderSetupFn(async (dir) => { | ||||
|       const bracketDir = join(dir, 'bracket') | ||||
|       await fsp.mkdir(bracketDir, { recursive: true }) | ||||
| @ -24,6 +24,10 @@ test( | ||||
|     await page.getByText('bracket').click() | ||||
|  | ||||
|     await scene.settled(cmdBar) | ||||
|  | ||||
|     const notFoundText = 'Machine API server was not discovered' | ||||
|     await expect(page.getByText(notFoundText).first()).not.toBeVisible() | ||||
|  | ||||
|     // Find the make button | ||||
|     const makeButton = page.getByRole('button', { name: 'Make part' }) | ||||
|     // Make sure the button is visible but disabled | ||||
| @ -40,7 +44,7 @@ test( | ||||
| test( | ||||
|   'When machine-api server not found home screen & project status shows the reason', | ||||
|   { tag: '@electron' }, | ||||
|   async ({ scene, cmdBar, context, page }, testInfo) => { | ||||
|   async ({ context, page, scene, cmdBar }, testInfo) => { | ||||
|     await context.folderSetupFn(async (dir) => { | ||||
|       const bracketDir = join(dir, 'bracket') | ||||
|       await fsp.mkdir(bracketDir, { recursive: true }) | ||||
| @ -67,5 +71,9 @@ test( | ||||
|     await scene.settled(cmdBar) | ||||
|  | ||||
|     await expect(page.getByText(notFoundText).nth(1)).not.toBeVisible() | ||||
|     await scene.settled(cmdBar) | ||||
|  | ||||
|     await networkMachineToggle.hover() | ||||
|     await expect(page.getByText(notFoundText).nth(1)).toBeVisible() | ||||
|   } | ||||
| ) | ||||
|  | ||||
|  | ||||
| @ -934,10 +934,10 @@ export async function setup( | ||||
|  | ||||
|   failOnConsoleErrors(page, testInfo) | ||||
|   // kill animations, speeds up tests and reduced flakiness | ||||
|   // await page.emulateMedia({ reducedMotion: 'reduce' }) | ||||
|   await page.emulateMedia({ reducedMotion: 'reduce' }) | ||||
|  | ||||
|   // Trigger a navigation, since loading file:// doesn't. | ||||
|   // await page.reload() | ||||
|   await page.reload() | ||||
| } | ||||
|  | ||||
| function failOnConsoleErrors(page: Page, testInfo?: TestInfo) { | ||||
|  | ||||
| @ -55,7 +55,8 @@ test.describe('Testing settings', () => { | ||||
|     // Check that the invalid settings were changed to good defaults | ||||
|     expect(storedSettings.settings?.modeling?.base_unit).toBe('in') | ||||
|     expect(storedSettings.settings?.modeling?.mouse_controls).toBe('zoo') | ||||
|     expect(storedSettings.settings?.project?.directory).toBe('') | ||||
|     // Commenting this out because tests need this to be set to work properly. | ||||
|     // expect(storedSettings.settings?.app?.project_directory).toBe('') | ||||
|     expect(storedSettings.settings?.project?.default_project_name).toBe( | ||||
|       'untitled' | ||||
|     ) | ||||
|  | ||||
| @ -17,7 +17,6 @@ declare module '@playwright/test' { | ||||
|   } | ||||
|   interface Page { | ||||
|     dir: string | ||||
|     TEST_SETTINGS_FILE_KEY?: string | ||||
|     setBodyDimensions: (dims: { | ||||
|       width: number | ||||
|       height: number | ||||
|  | ||||
							
								
								
									
										1
									
								
								interface.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								interface.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -72,7 +72,6 @@ export interface IElectronAPI { | ||||
|   process: { | ||||
|     env: { | ||||
|       BASE_URL: string | ||||
|       TEST_SETTINGS_FILE_KEY: string | ||||
|       IS_PLAYWRIGHT: string | ||||
|       VITE_KC_DEV_TOKEN: string | ||||
|       VITE_KC_API_WS_MODELING_URL: string | ||||
|  | ||||
		Reference in New Issue
	
	Block a user