diff --git a/web/__tests__/header/nav-flow.test.tsx b/web/__tests__/header/nav-flow.test.tsx
index 05955a6c83..667f1e36b7 100644
--- a/web/__tests__/header/nav-flow.test.tsx
+++ b/web/__tests__/header/nav-flow.test.tsx
@@ -195,9 +195,19 @@ describe('Header Nav Flow', () => {
renderNav()
fireEvent.click(screen.getByRole('button', { name: /Alpha/i }))
- fireEvent.click(await screen.findByText('menus.newApp'))
+
+ const openCreateMenu = async () => {
+ fireEvent.click(await screen.findByText('menus.newApp'))
+ return screen.findByText('newApp.startFromBlank')
+ }
+
+ await openCreateMenu()
fireEvent.click(await screen.findByText('newApp.startFromBlank'))
+
+ await openCreateMenu()
fireEvent.click(await screen.findByText('newApp.startFromTemplate'))
+
+ await openCreateMenu()
fireEvent.click(await screen.findByText('importDSL'))
expect(mockOnCreate).toHaveBeenNthCalledWith(1, 'blank')
diff --git a/web/app/components/header/nav/__tests__/index.spec.tsx b/web/app/components/header/nav/__tests__/index.spec.tsx
index 3dce8375b3..f4a1399638 100644
--- a/web/app/components/header/nav/__tests__/index.spec.tsx
+++ b/web/app/components/header/nav/__tests__/index.spec.tsx
@@ -298,11 +298,15 @@ describe('Nav Component', () => {
fireEvent.click(selectorButton)
})
- const createButton = await screen.findByText('Create New')
- await act(async () => {
- fireEvent.click(createButton)
- })
+ const openCreateMenu = async () => {
+ const createButton = await screen.findByText('Create New')
+ await act(async () => {
+ fireEvent.click(createButton)
+ })
+ return screen.findByText(/app\.newApp\.startFromBlank/i)
+ }
+ await openCreateMenu()
const blankOption = await screen.findByText(
/app\.newApp\.startFromBlank/i,
)
@@ -311,6 +315,7 @@ describe('Nav Component', () => {
})
expect(mockOnCreate).toHaveBeenCalledWith('blank')
+ await openCreateMenu()
const templateOption = await screen.findByText(
/app\.newApp\.startFromTemplate/i,
)
@@ -319,6 +324,7 @@ describe('Nav Component', () => {
})
expect(mockOnCreate).toHaveBeenCalledWith('template')
+ await openCreateMenu()
const dslOption = await screen.findByText(/app\.importDSL/i)
await act(async () => {
fireEvent.click(dslOption)
diff --git a/web/app/components/header/nav/nav-selector/__tests__/index.spec.tsx b/web/app/components/header/nav/nav-selector/__tests__/index.spec.tsx
index 97443bb759..b1de3ab5e3 100644
--- a/web/app/components/header/nav/nav-selector/__tests__/index.spec.tsx
+++ b/web/app/components/header/nav/nav-selector/__tests__/index.spec.tsx
@@ -203,23 +203,30 @@ describe('NavSelector Component', () => {
await act(async () => {
fireEvent.click(button)
})
- const createBtn = screen.getByText('Create New')
- await act(async () => {
- fireEvent.click(createBtn)
- })
+ const openCreateMenu = async () => {
+ const createBtn = screen.getByText('Create New')
+ await act(async () => {
+ fireEvent.click(createBtn)
+ })
+ return screen.findByText(/app\.newApp\.startFromBlank/i)
+ }
+
+ await openCreateMenu()
const blank = await screen.findByText(/app\.newApp\.startFromBlank/i)
await act(async () => {
fireEvent.click(blank)
})
expect(mockOnCreate).toHaveBeenCalledWith('blank')
+ await openCreateMenu()
const template = await screen.findByText(/app\.newApp\.startFromTemplate/i)
await act(async () => {
fireEvent.click(template)
})
expect(mockOnCreate).toHaveBeenCalledWith('template')
+ await openCreateMenu()
const dsl = await screen.findByText(/app\.importDSL/i)
await act(async () => {
fireEvent.click(dsl)
@@ -227,6 +234,21 @@ describe('NavSelector Component', () => {
expect(mockOnCreate).toHaveBeenCalledWith('dsl')
})
+ it('should open extended create menu on hover in app mode', async () => {
+ render(