Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitba8794d

Browse files
committed
fix: updates for PR review
1 parent176f542 commitba8794d

File tree

2 files changed

+73
-105
lines changed

2 files changed

+73
-105
lines changed

‎site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.test.tsx‎

Lines changed: 65 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -79,33 +79,28 @@ function createMockWebSocket(
7979

8080
addEventListener:<EextendskeyofWebSocketEventMap>(
8181
eventType:E,
82-
callback:WebSocketEventMap[E],
82+
cb:(event:WebSocketEventMap[E])=>void,
8383
)=>{
8484
if(closed){
8585
return;
8686
}
8787

8888
constsubscribers=store[eventType];
89-
constcb=callbackasunknownasCallbackStore[E][0];
9089
if(!subscribers.includes(cb)){
9190
subscribers.push(cb);
9291
}
9392
},
9493

9594
removeEventListener:<EextendskeyofWebSocketEventMap>(
9695
eventType:E,
97-
callback:WebSocketEventMap[E],
96+
cb:(event:WebSocketEventMap[E])=>void,
9897
)=>{
9998
if(closed){
10099
return;
101100
}
102101

103-
constsubscribers=store[eventType];
104-
constcb=callbackasunknownasCallbackStore[E][0];
105-
if(subscribers.includes(cb)){
106-
constupdated=store[eventType].filter((c)=>c!==cb);
107-
store[eventType]=updatedasunknownasCallbackStore[E];
108-
}
102+
constupdated=store[eventType].filter((c)=>c!==cb);
103+
store[eventType]=updatedasunknownasCallbackStore[E];
109104
},
110105

111106
close:()=>{
@@ -189,25 +184,25 @@ const mockDynamicParametersResponseWithError: DynamicParametersResponse = {
189184
],
190185
};
191186

192-
constrenderCreateWorkspacePageExperimental=(
193-
route=`/templates/${MockTemplate.name}/workspace`,
194-
)=>{
195-
returnrenderWithAuth(<CreateWorkspacePageExperimental/>,{
196-
route,
197-
path:"/templates/:template/workspace",
198-
extraRoutes:[
199-
{
200-
path:"/:username/:workspace",
201-
element:<div>Workspace Page</div>,
202-
},
203-
],
204-
});
205-
};
206-
207187
describe("CreateWorkspacePageExperimental",()=>{
208188
letmockWebSocket:WebSocket;
209189
letpublisher:MockPublisher;
210190

191+
constrenderCreateWorkspacePageExperimental=(
192+
route=`/templates/${MockTemplate.name}/workspace`,
193+
)=>{
194+
returnrenderWithAuth(<CreateWorkspacePageExperimental/>,{
195+
route,
196+
path:"/templates/:template/workspace",
197+
extraRoutes:[
198+
{
199+
path:"/:username/:workspace",
200+
element:<div>Workspace Page</div>,
201+
},
202+
],
203+
});
204+
};
205+
211206
beforeEach(()=>{
212207
jest.clearAllMocks();
213208

@@ -234,14 +229,12 @@ describe("CreateWorkspacePageExperimental", () => {
234229
callbacks.onClose();
235230
});
236231

237-
setTimeout(()=>{
238-
publisher.publishOpen(newEvent("open"));
239-
publisher.publishMessage(
240-
newMessageEvent("message",{
241-
data:JSON.stringify(mockDynamicParametersResponse),
242-
}),
243-
);
244-
},10);
232+
publisher.publishOpen(newEvent("open"));
233+
publisher.publishMessage(
234+
newMessageEvent("message",{
235+
data:JSON.stringify(mockDynamicParametersResponse),
236+
}),
237+
);
245238

246239
returnmockWebSocket;
247240
});
@@ -269,7 +262,7 @@ describe("CreateWorkspacePageExperimental", () => {
269262
);
270263

271264
awaitwaitFor(()=>{
272-
expect(screen.getByText("Instance Type")).toBeInTheDocument();
265+
expect(screen.getByText(/instancetype/i)).toBeInTheDocument();
273266
expect(screen.getByText("CPU Count")).toBeInTheDocument();
274267
expect(screen.getByText("Enable Monitoring")).toBeInTheDocument();
275268
expect(screen.getByText("Tags")).toBeInTheDocument();
@@ -280,9 +273,7 @@ describe("CreateWorkspacePageExperimental", () => {
280273
renderCreateWorkspacePageExperimental();
281274
awaitwaitForLoaderToBeRemoved();
282275

283-
awaitwaitFor(()=>{
284-
expect(screen.getByText("Instance Type")).toBeInTheDocument();
285-
});
276+
expect(screen.getByText(/instancetype/i)).toBeInTheDocument();
286277

287278
expect(mockWebSocket.send).toBeDefined();
288279

@@ -381,18 +372,16 @@ describe("CreateWorkspacePageExperimental", () => {
381372
callbacks.onMessage(JSON.parse(event.data));
382373
});
383374

384-
setTimeout(()=>{
385-
publisher.publishOpen(newEvent("open"));
386-
publisher.publishMessage(
387-
newMessageEvent("message",{
388-
data:JSON.stringify({
389-
id:0,
390-
parameters:[mockDropdownParameter],
391-
diagnostics:[],
392-
}),
375+
publisher.publishOpen(newEvent("open"));
376+
publisher.publishMessage(
377+
newMessageEvent("message",{
378+
data:JSON.stringify({
379+
id:0,
380+
parameters:[mockDropdownParameter],
381+
diagnostics:[],
393382
}),
394-
);
395-
},0);
383+
}),
384+
);
396385

397386
returnmockWebSocket;
398387
});
@@ -411,20 +400,18 @@ describe("CreateWorkspacePageExperimental", () => {
411400
diagnostics:[],
412401
};
413402

414-
setTimeout(()=>{
403+
awaitwaitFor(()=>{
415404
publisher.publishMessage(
416405
newMessageEvent("message",{data:JSON.stringify(response1)}),
417406
);
418407

419408
publisher.publishMessage(
420409
newMessageEvent("message",{data:JSON.stringify(response2)}),
421410
);
422-
},0);
423-
424-
awaitwaitFor(()=>{
425-
expect(screen.queryByText("CPU Count")).toBeInTheDocument();
426-
expect(screen.queryByText("Instance Type")).not.toBeInTheDocument();
427411
});
412+
413+
expect(screen.queryByText("CPU Count")).toBeInTheDocument();
414+
expect(screen.queryByText("Instance Type")).not.toBeInTheDocument();
428415
});
429416
});
430417

@@ -433,28 +420,18 @@ describe("CreateWorkspacePageExperimental", () => {
433420
renderCreateWorkspacePageExperimental();
434421
awaitwaitForLoaderToBeRemoved();
435422

436-
awaitwaitFor(()=>{
437-
expect(screen.getByText("Instance Type")).toBeInTheDocument();
438-
expect(
439-
screen.getByRole("combobox",{name:/instancetype/i}),
440-
).toBeInTheDocument();
441-
});
423+
expect(screen.getByText(/instancetype/i)).toBeInTheDocument();
442424

443425
constselect=screen.getByRole("combobox",{name:/instancetype/i});
444426

445427
awaitwaitFor(async()=>{
446428
awaituserEvent.click(select);
447429
});
448430

449-
expect(
450-
screen.getByRole("option",{name:/t3\.micro/i}),
451-
).toBeInTheDocument();
452-
expect(
453-
screen.getByRole("option",{name:/t3\.small/i}),
454-
).toBeInTheDocument();
455-
expect(
456-
screen.getByRole("option",{name:/t3\.medium/i}),
457-
).toBeInTheDocument();
431+
// Each option appears in both the trigger and the dropdown
432+
expect(screen.getAllByText(/t3\.micro/i)).toHaveLength(2);
433+
expect(screen.getAllByText(/t3\.small/i)).toHaveLength(2);
434+
expect(screen.getAllByText(/t3\.medium/i)).toHaveLength(2);
458435
});
459436

460437
it("renders number parameter with slider",async()=>{
@@ -539,13 +516,11 @@ describe("CreateWorkspacePageExperimental", () => {
539516
callbacks.onMessage(JSON.parse(event.data));
540517
});
541518

542-
setTimeout(()=>{
543-
publisher.publishMessage(
544-
newMessageEvent("message",{
545-
data:JSON.stringify(mockDynamicParametersResponseWithError),
546-
}),
547-
);
548-
},10);
519+
publisher.publishMessage(
520+
newMessageEvent("message",{
521+
data:JSON.stringify(mockDynamicParametersResponseWithError),
522+
}),
523+
);
549524

550525
returnmockWebSocket;
551526
});
@@ -603,28 +578,24 @@ describe("CreateWorkspacePageExperimental", () => {
603578
callbacks.onMessage(JSON.parse(event.data));
604579
});
605580

606-
setTimeout(()=>{
607-
publisher.publishOpen(newEvent("open"));
581+
publisher.publishOpen(newEvent("open"));
608582

609-
publisher.publishMessage(
610-
newMessageEvent("message",{
611-
data:JSON.stringify(mockResponseInitial),
612-
}),
613-
);
614-
},10);
583+
publisher.publishMessage(
584+
newMessageEvent("message",{
585+
data:JSON.stringify(mockResponseInitial),
586+
}),
587+
);
615588

616589
constoriginalSend=socket.send;
617590
socket.send=jest.fn((data)=>{
618591
originalSend.call(socket,data);
619592

620593
if(typeofdata==="string"&&data.includes('"200"')){
621-
setTimeout(()=>{
622-
publisher.publishMessage(
623-
newMessageEvent("message",{
624-
data:JSON.stringify(mockResponseWithError),
625-
}),
626-
);
627-
},10);
594+
publisher.publishMessage(
595+
newMessageEvent("message",{
596+
data:JSON.stringify(mockResponseWithError),
597+
}),
598+
);
628599
}
629600
});
630601

@@ -746,9 +717,7 @@ describe("CreateWorkspacePageExperimental", () => {
746717

747718
awaitwaitForLoaderToBeRemoved();
748719

749-
awaitwaitFor(()=>{
750-
expect(screen.getByText("Instance Type")).toBeInTheDocument();
751-
});
720+
expect(screen.getByText(/instancetype/i)).toBeInTheDocument();
752721

753722
awaitwaitFor(()=>{
754723
expect(screen.getByText("Create workspace")).toBeInTheDocument();
@@ -764,9 +733,7 @@ describe("CreateWorkspacePageExperimental", () => {
764733
renderCreateWorkspacePageExperimental();
765734
awaitwaitForLoaderToBeRemoved();
766735

767-
awaitwaitFor(()=>{
768-
expect(screen.getByText("Instance Type")).toBeInTheDocument();
769-
});
736+
expect(screen.getByText(/instancetype/i)).toBeInTheDocument();
770737

771738
constnameInput=screen.getByRole("textbox",{
772739
name:/workspacename/i,
@@ -813,10 +780,8 @@ describe("CreateWorkspacePageExperimental", () => {
813780
);
814781
awaitwaitForLoaderToBeRemoved();
815782

816-
awaitwaitFor(()=>{
817-
expect(screen.getByText("Instance Type")).toBeInTheDocument();
818-
expect(screen.getByText("CPU Count")).toBeInTheDocument();
819-
});
783+
expect(screen.getByText(/instancetype/i)).toBeInTheDocument();
784+
expect(screen.getByText("CPU Count")).toBeInTheDocument();
820785
});
821786

822787
it("uses custom template version when specified",async()=>{

‎site/src/pages/CreateWorkspacePage/CreateWorkspacePageExperimental.tsx‎

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -271,16 +271,19 @@ const CreateWorkspacePageExperimental: FC = () => {
271271
return[...latestResponse.parameters].sort((a,b)=>a.order-b.order);
272272
},[latestResponse?.parameters]);
273273

274+
constshouldShowLoader=
275+
!templateQuery.data||
276+
isLoadingFormData||
277+
isLoadingExternalAuth||
278+
autoCreateReady||
279+
(!latestResponse&&!wsError);
280+
274281
return(
275282
<>
276283
<Helmet>
277284
<title>{pageTitle(title)}</title>
278285
</Helmet>
279-
{(!latestResponse&&!wsError)||
280-
!templateQuery.data||
281-
isLoadingFormData||
282-
isLoadingExternalAuth||
283-
autoCreateReady ?(
286+
{shouldShowLoader ?(
284287
<Loader/>
285288
) :(
286289
<CreateWorkspacePageViewExperimental

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp