Skip to content

Commit 6bde2d7

Browse files
committed
added more navabr testing
1 parent feac4fd commit 6bde2d7

File tree

3 files changed

+75
-5
lines changed

3 files changed

+75
-5
lines changed

__tests__/NavBar.test.tsx

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import React from 'react';
22
import { render, fireEvent, waitFor } from '@testing-library/react';
3+
import '@testing-library/jest-dom/extend-expect';
34
import { MemoryRouter } from 'react-router-dom';
45
import { ThemeProvider, createTheme } from '@mui/material/styles';
56
import NavBar from '../app/src/components/top/NavBar';
7+
import navbarDropDown from '../app/src/components/top/navbarDropDown'
68
import * as projectFunctions from '../app/src/helperFunctions/projectGetSaveDel';
79
import { Provider } from 'react-redux';
810
import { configureStore } from '@reduxjs/toolkit';
@@ -23,6 +25,12 @@ jest.mock('../app/src/helperFunctions/projectGetSaveDel', () => ({
2325
unpublishProject: jest.fn(),
2426
}));
2527

28+
//mock the file saver library
29+
jest.mock('file-saver', () => ({
30+
...jest.requireActual('file-saver'),
31+
saveAs: jest.fn(),
32+
}));
33+
2634
const originalError = console.error;
2735
beforeAll(() => {
2836
console.error = jest.fn();
@@ -156,4 +164,66 @@ describe('NavBar Component', () => {
156164
fireEvent.click(unpublishButton);
157165
}
158166
});
167+
168+
it('handles export correctly', async () => {
169+
const store = configureStore({
170+
reducer: rootReducer,
171+
preloadedState: {
172+
appState: {
173+
...appStateInitialState,
174+
isLoggedIn: true,
175+
name: 'Mock Project Name',
176+
},
177+
},
178+
});
179+
180+
console.log('Before rendering NavBar');
181+
182+
const { getByText } = renderNavBar(store);
183+
184+
console.log('After rendering NavBar');
185+
186+
// Find and click the export button
187+
const exportButton = getByText('< > Export');
188+
fireEvent.click(exportButton);
189+
190+
191+
await waitFor(() => {
192+
const exportModal = getByText('Click to download in zip file:');
193+
expect(exportModal).toBeInTheDocument();
194+
});
195+
196+
197+
const exportComponentsOption = getByText('Export components');
198+
fireEvent.click(exportComponentsOption);
199+
200+
});
201+
202+
203+
204+
it('handles dropdown menu correctly', () => {
205+
const store = configureStore({
206+
reducer: rootReducer,
207+
preloadedState: {
208+
appState: {
209+
...appStateInitialState,
210+
isLoggedIn: true,
211+
name: 'Mock Project Name',
212+
},
213+
},
214+
});
215+
216+
const { getByTestId } = renderNavBar(store);
217+
const moreVertButton = getByTestId('more-vert-button');
218+
219+
220+
expect(moreVertButton).toBeInTheDocument();
221+
222+
223+
fireEvent.click(moreVertButton);
224+
225+
226+
});
227+
228+
159229
});

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@
183183
"@mui/styled-engine-sc": "^5.9.3",
184184
"@mui/x-data-grid": "^5.15.3",
185185
"@playwright/test": "^1.33.0",
186-
"@testing-library/jest-dom": "^5.16.4",
186+
"@testing-library/jest-dom": "^5.17.0",
187187
"@testing-library/react": "^12.1.2",
188188
"@types/chai": "^4.3.1",
189189
"@types/jest": "^28.1.6",

0 commit comments

Comments
 (0)