@@ -5,7 +5,7 @@ import { uuidv4 } from '@src/lib/utils'
5
5
import type { HomePageFixture } from '@e2e/playwright/fixtures/homePageFixture'
6
6
import type { SceneFixture } from '@e2e/playwright/fixtures/sceneFixture'
7
7
import type { ToolbarFixture } from '@e2e/playwright/fixtures/toolbarFixture'
8
- import type { CmdBarFixture } from '@e2e/playwright/fixtures/cmdBarFixture '
8
+ import type { EditorFixture } from '@e2e/playwright/fixtures/editorFixture '
9
9
import { getUtils } from '@e2e/playwright/test-utils'
10
10
import { expect , test } from '@e2e/playwright/zoo-test'
11
11
@@ -15,7 +15,7 @@ test.describe('Can create sketches on all planes and their back sides', () => {
15
15
homePage : HomePageFixture ,
16
16
scene : SceneFixture ,
17
17
toolbar : ToolbarFixture ,
18
- cmdBar : CmdBarFixture ,
18
+ editor : EditorFixture ,
19
19
plane : string ,
20
20
clickCoords : { x : number ; y : number }
21
21
) => {
@@ -52,43 +52,36 @@ test.describe('Can create sketches on all planes and their back sides', () => {
52
52
} ,
53
53
}
54
54
55
- const code = `@settings(defaultLengthUnit = in)sketch001 = startSketchOn(${ plane } )profile001 = startProfile(sketch001, at = [0.91, -1.22]) `
55
+ const code = `@settings(defaultLengthUnit = in)sketch001 = startSketchOn(${ plane } )profile001 = startProfile(sketch001, at = [`
56
56
57
- await u . openDebugPanel ( )
58
-
59
- await u . clearCommandLogs ( )
60
- await page . getByRole ( 'button' , { name : 'Start Sketch' } ) . click ( )
61
-
62
- await u . sendCustomCmd ( camCommand )
63
- await page . waitForTimeout ( 100 )
64
- await u . sendCustomCmd ( updateCamCommand )
57
+ await test . step ( `Sketch on the ${ plane } plane using custom camera commands to orient` , async ( ) => {
58
+ await u . openDebugPanel ( )
59
+ await u . clearCommandLogs ( )
60
+ await toolbar . startSketchBtn . click ( )
65
61
66
- await u . closeDebugPanel ( )
62
+ await u . sendCustomCmd ( camCommand )
63
+ await page . waitForTimeout ( 100 )
64
+ await u . sendCustomCmd ( updateCamCommand )
67
65
68
- await page . mouse . click ( clickCoords . x , clickCoords . y )
69
- await page . waitForTimeout ( 600 ) // wait for animation
66
+ await u . closeDebugPanel ( )
70
67
71
- await toolbar . waitUntilSketchingReady ( )
72
-
73
- await expect (
74
- page . getByRole ( 'button' , { name : 'line Line' , exact : true } )
75
- ) . toBeVisible ( )
68
+ const resolvedCoords = await scene . convertPagePositionToStream (
69
+ clickCoords . x ,
70
+ clickCoords . y
71
+ )
72
+ await page . mouse . click ( resolvedCoords . x , resolvedCoords . y )
73
+ await page . waitForTimeout ( 600 ) // wait for animation
76
74
77
- await u . closeDebugPanel ( )
78
- await page . mouse . click ( 707 , 393 )
75
+ await toolbar . waitUntilSketchingReady ( )
79
76
80
- await expect ( page . locator ( '.cm-content' ) ) . toHaveText ( code )
77
+ await u . closeDebugPanel ( )
78
+ await expect ( toolbar . lineBtn ) . toHaveAttribute ( 'aria-pressed' , 'true' )
79
+ } )
81
80
82
- await page
83
- . getByRole ( 'button' , { name : 'line Line' , exact : true } )
84
- . first ( )
85
- . click ( )
86
- await u . openAndClearDebugPanel ( )
87
- await page . getByRole ( 'button' , { name : 'Exit Sketch' } ) . click ( )
88
- await u . expectCmdLog ( '[data-message-type="execution-done"]' )
81
+ const lineCoords = await scene . convertPagePositionToStream ( 707 , 393 )
82
+ await page . mouse . click ( lineCoords . x , lineCoords . y )
89
83
90
- await u . clearCommandLogs ( )
91
- await u . removeCurrentCode ( )
84
+ await editor . expectEditor . toContain ( code )
92
85
}
93
86
94
87
const planeConfigs = [
@@ -125,13 +118,13 @@ test.describe('Can create sketches on all planes and their back sides', () => {
125
118
]
126
119
127
120
for ( const config of planeConfigs ) {
128
- test ( config . plane , async ( { page, homePage, scene, toolbar, cmdBar } ) => {
121
+ test ( config . plane , async ( { page, homePage, scene, toolbar, editor } ) => {
129
122
await sketchOnPlaneAndBackSideTest (
130
123
page ,
131
124
homePage ,
132
125
scene ,
133
126
toolbar ,
134
- cmdBar ,
127
+ editor ,
135
128
config . plane ,
136
129
config . coords
137
130
)
@@ -144,7 +137,7 @@ test.describe('Can create sketches on offset planes and their back sides', () =>
144
137
homePage : HomePageFixture ,
145
138
scene : SceneFixture ,
146
139
toolbar : ToolbarFixture ,
147
- cmdbar : CmdBarFixture ,
140
+ editor : EditorFixture ,
148
141
plane : string ,
149
142
clickCoords : { x : number ; y : number }
150
143
) => {
@@ -194,54 +187,48 @@ yzPlane = offsetPlane(YZ, offset = 0.05)
194
187
. toLocaleLowerCase ( )
195
188
196
189
const codeLine1 = `sketch001 = startSketchOn(${ prefix } ${ planeName } Plane)`
197
- const codeLine2 = ` profile001 = startProfile(sketch001, at = [${ 0.91 + ( plane [ 0 ] === '-' ? 0.01 : 0 ) } , - ${ 1.21 + ( plane [ 0 ] === '-' ? 0.01 : 0 ) } ])`
198
-
199
- await u . openDebugPanel ( )
200
-
201
- await u . clearCommandLogs ( )
202
- await page . getByRole ( 'button' , { name : 'Start Sketch' } ) . click ( )
203
-
204
- await u . sendCustomCmd ( camCommand )
205
- await page . waitForTimeout ( 100 )
206
- await u . sendCustomCmd ( updateCamCommand )
207
-
208
- await u . closeDebugPanel ( )
209
-
210
- await toolbar . openFeatureTreePane ( )
211
- await toolbar . getDefaultPlaneVisibilityButton ( 'XY' ) . click ( )
212
- await toolbar . getDefaultPlaneVisibilityButton ( 'XZ' ) . click ( )
213
- await toolbar . getDefaultPlaneVisibilityButton ( 'YZ ' ) . click ( )
214
- await expect (
215
- toolbar
216
- . getDefaultPlaneVisibilityButton ( 'YZ' )
217
- . locator ( '[aria-label="eye crossed out"]' )
218
- ) . toBeVisible ( )
219
-
220
- await page . mouse . click ( clickCoords . x , clickCoords . y )
221
- await page . waitForTimeout ( 600 ) // wait for animation
222
-
223
- await toolbar . waitUntilSketchingReady ( )
224
-
225
- await expect (
226
- page . getByRole ( 'button' , { name : 'line Line' , exact : true } )
227
- ) . toBeVisible ( )
190
+ const codeLine2 = ' profile001 = startProfile(sketch001, at = ['
191
+
192
+ await test . step ( `Sketch on the ${ plane } plane using custom camera commands to orient` , async ( ) => {
193
+ await u . openDebugPanel ( )
194
+
195
+ await u . clearCommandLogs ( )
196
+ await toolbar . startSketchBtn . click ( )
197
+
198
+ await u . sendCustomCmd ( camCommand )
199
+ await page . waitForTimeout ( 100 )
200
+ await u . sendCustomCmd ( updateCamCommand )
201
+
202
+ await u . closeDebugPanel ( )
203
+
204
+ // TODO: can we remove these feature tree checks? They seem out of place.
205
+ await toolbar . openFeatureTreePane ( )
206
+ await toolbar . getDefaultPlaneVisibilityButton ( 'XY ' ) . click ( )
207
+ await toolbar . getDefaultPlaneVisibilityButton ( 'XZ' ) . click ( )
208
+ await toolbar . getDefaultPlaneVisibilityButton ( 'YZ' ) . click ( )
209
+ await expect (
210
+ toolbar
211
+ . getDefaultPlaneVisibilityButton ( 'YZ' )
212
+ . locator ( '[aria-label="eye crossed out"]' )
213
+ ) . toBeVisible ( )
214
+
215
+ const resolvedCoords = await scene . convertPagePositionToStream (
216
+ clickCoords . x ,
217
+ clickCoords . y
218
+ )
219
+ await page . mouse . click ( resolvedCoords . x , resolvedCoords . y )
220
+ await page . waitForTimeout ( 600 ) // wait for animation
228
221
229
- await u . closeDebugPanel ( )
230
- await page . mouse . click ( 707 , 393 )
222
+ await toolbar . waitUntilSketchingReady ( )
231
223
232
- await expect ( page . locator ( '.cm-content' ) ) . toContainText ( codeLine1 )
233
- await expect ( page . locator ( '.cm-content' ) ) . toContainText ( codeLine2 )
224
+ await expect ( toolbar . lineBtn ) . toHaveAttribute ( 'aria-pressed' , 'true' )
225
+ } )
234
226
235
- await page
236
- . getByRole ( 'button' , { name : 'line Line' , exact : true } )
237
- . first ( )
238
- . click ( )
239
- await u . openAndClearDebugPanel ( )
240
- await page . getByRole ( 'button' , { name : 'Exit Sketch' } ) . click ( )
241
- await u . expectCmdLog ( '[data-message-type="execution-done"]' )
227
+ const lineCoords = await scene . convertPagePositionToStream ( 707 , 393 )
228
+ await page . mouse . click ( lineCoords . x , lineCoords . y )
242
229
243
- await u . clearCommandLogs ( )
244
- await u . removeCurrentCode ( )
230
+ await editor . expectEditor . toContain ( codeLine1 )
231
+ await editor . expectEditor . toContain ( codeLine2 )
245
232
}
246
233
247
234
const planeConfigs = [
@@ -278,13 +265,13 @@ yzPlane = offsetPlane(YZ, offset = 0.05)
278
265
]
279
266
280
267
for ( const config of planeConfigs ) {
281
- test ( config . plane , async ( { page, homePage, scene, toolbar, cmdBar } ) => {
268
+ test ( config . plane , async ( { page, homePage, scene, toolbar, editor } ) => {
282
269
await sketchOnPlaneAndBackSideTest (
283
270
page ,
284
271
homePage ,
285
272
scene ,
286
273
toolbar ,
287
- cmdBar ,
274
+ editor ,
288
275
config . plane ,
289
276
config . coords
290
277
)
0 commit comments