Skip to content

Commit 3daed4d

Browse files
authored
Merge pull request #38 from oslabs-beta/Ahnafkhvn/testing
Ahnafkhvn/testing
2 parents c251f89 + 7fc5525 commit 3daed4d

File tree

3 files changed

+82
-12
lines changed

3 files changed

+82
-12
lines changed

__tests__/NavBar.test.tsx

Lines changed: 77 additions & 7 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,14 +25,20 @@ jest.mock('../app/src/helperFunctions/projectGetSaveDel', () => ({
2325
unpublishProject: jest.fn(),
2426
}));
2527

26-
const originalError = console.error;
27-
beforeAll(() => {
28-
console.error = jest.fn();
29-
});
28+
//mock the file saver library
29+
jest.mock('file-saver', () => ({
30+
...jest.requireActual('file-saver'),
31+
saveAs: jest.fn(),
32+
}));
3033

31-
afterAll(() => {
32-
console.error = originalError;
33-
});
34+
// const originalError = console.error;
35+
// beforeAll(() => {
36+
// console.error = jest.fn();
37+
// });
38+
39+
// afterAll(() => {
40+
// console.error = originalError;
41+
// });
3442

3543
// Mocking the render
3644
const renderNavBar = (store) => {
@@ -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
@@ -188,7 +188,7 @@
188188
"@mui/styled-engine-sc": "^5.9.3",
189189
"@mui/x-data-grid": "^5.15.3",
190190
"@playwright/test": "^1.33.0",
191-
"@testing-library/jest-dom": "^5.16.4",
191+
"@testing-library/jest-dom": "^5.17.0",
192192
"@testing-library/react": "^12.1.2",
193193
"@types/chai": "^4.3.1",
194194
"@types/jest": "^28.1.6",

0 commit comments

Comments
 (0)