Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
675adf1
permissionDeniedDialog location ux changed
EngineerDev11 Mar 31, 2025
a1a51ee
PermissionDeniedDialog ux update 2
EngineerDev11 Mar 31, 2025
5ca935b
location access ux update 1
EngineerDev11 Mar 31, 2025
a776006
launch button ux update 1
EngineerDev11 Apr 2, 2025
d08ab1e
join choir button ux update 1
EngineerDev11 Apr 3, 2025
7326ce6
Removed mute speaker icon from bottomBar
EngineerDev11 Apr 3, 2025
343302e
Disabled automatic deployment vercel
EngineerDev11 Apr 3, 2025
0e327ee
Disabled automatic deployment vercel 2
EngineerDev11 Apr 3, 2025
cd0a75e
Enhance LoopingRecordingForm with checkbox and updated UI for 'Join …
EngineerDev11 Apr 4, 2025
66cb8a6
Implement countdown timer and rehearsal flow in LoopingRecordingForm
EngineerDev11 Apr 4, 2025
ac2af0d
Add GitHub Actions workflow for deploying to GitHub Pages
shreyas-jadhav Apr 4, 2025
94da96d
Update GitHub Actions workflow to use pnpm for dependency management …
shreyas-jadhav Apr 4, 2025
5d0beee
fix build errors
shreyas-jadhav Apr 4, 2025
b494ab3
Enable Pages configuration in GitHub Actions workflow
shreyas-jadhav Apr 4, 2025
f935694
Update GitHub Actions workflow permissions to allow write access for …
shreyas-jadhav Apr 4, 2025
97fd16b
Refactor GitHub Actions workflow by removing unnecessary Pages config…
shreyas-jadhav Apr 4, 2025
19ca04a
Update GitHub Actions workflow to build Vite app and streamline artif…
shreyas-jadhav Apr 4, 2025
f90826d
Remove artifact upload step from GitHub Actions workflow to simplify …
shreyas-jadhav Apr 4, 2025
0bf6058
Add dynamic step indicator component to LoopingRecordingForm
EngineerDev11 Apr 4, 2025
f03fce6
Merge branch 'shubham/new-ui-ux' of https://github.com/roundware/roun…
EngineerDev11 Apr 4, 2025
5826958
test commit
shreyas-jadhav Apr 4, 2025
fa48709
test commit
shreyas-jadhav Apr 4, 2025
33737ab
test commit
shreyas-jadhav Apr 4, 2025
3c86633
Merge branch 'shubham/new-ui-ux' of https://github.com/roundware/roun…
EngineerDev11 Apr 4, 2025
7fc21a0
pnpm-lock file changed
EngineerDev11 Apr 4, 2025
7416ff9
Fixed an issue preventing map interaction.
EngineerDev11 Apr 5, 2025
8cc054f
Remove GitHub Actions workflow for building Vite app
EngineerDev11 Apr 5, 2025
f0d9d55
Fixed checkbox's text in LoopingRecordingForm to use FormControlLabel
EngineerDev11 Apr 5, 2025
2a8d6ba
Add LocationNotFoundDialog component for handling location errors
EngineerDev11 Apr 8, 2025
212d4c7
Add ConfirmationDialog component for re-record & leave choir
EngineerDev11 Apr 9, 2025
3320dc8
Refactor ConfirmationDialog to accept customizable props
EngineerDev11 Apr 9, 2025
dba714c
Add recording functionality without modifying recording logic; includ…
EngineerDev11 Apr 10, 2025
f22baa4
Remove overlapping Typography components from LoopingRecordingForm
EngineerDev11 Apr 12, 2025
7e5f42c
Refactor ConfirmationDialog to use Container
EngineerDev11 Apr 12, 2025
662df81
better count down timer.
shreyas-jadhav Apr 12, 2025
36d8912
Add re-record confirmation dialog to ControlButton and update Recordi…
shreyas-jadhav Apr 14, 2025
cc5476a
install latest frameowrk
shreyas-jadhav Apr 16, 2025
6fdc323
Replace old re-record dialog with ConfirmationDialog in ControlButton
EngineerDev11 Apr 16, 2025
ec3b1a6
Add thank you confirmation dialog to LoopingRecordingForm
EngineerDev11 Apr 16, 2025
34b500c
Fix recording duration calculation in useRecorder to improve accuracy
EngineerDev11 Apr 16, 2025
bf6f5a9
Smoke testing - Add Jest configuration and setup for testing environm…
EngineerDev11 May 3, 2025
4776ad7
Add smoke tests for App components including App, DrawerSensitiveWrap…
EngineerDev11 May 3, 2025
ab6dde8
Add smoke tests for DebugPage component
EngineerDev11 May 3, 2025
70e0619
Add smoke tests for DateFilterMenu component
EngineerDev11 May 4, 2025
172e21f
Update package.json to configure Jest for smoke testing
EngineerDev11 May 4, 2025
e877b51
Add smoke tests for AssetLayer components from ListenMap
EngineerDev11 May 4, 2025
0c137d6
Add roundware-web-framework mock path to Jest configuration
EngineerDev11 May 4, 2025
8e36470
Add smoke tests for Speaker components from ListenPage
EngineerDev11 May 4, 2025
9822fbb
Add smoke tests for WalkingModeButton components in ListenPage
EngineerDev11 May 5, 2025
e08548d
Enhance Jest configuration
EngineerDev11 May 5, 2025
3798612
Add smoke tests for ListenPage Map components
EngineerDev11 May 5, 2025
d3e46cc
Add smoke tests for ResetButton component in ListenPage Map
EngineerDev11 May 6, 2025
5a8f0f1
Move into ListenPage Map Folder
EngineerDev11 May 6, 2025
6562569
Add smoke tests for ListenPage components including Filters, ListenDr…
EngineerDev11 May 6, 2025
f67dbe1
Add smoke tests for AdditionalMediaMenu components in SpeakPage
EngineerDev11 May 6, 2025
8e11fc8
Add smoke tests for RecordingControls components in SpeakPage
EngineerDev11 May 6, 2025
fa74439
Update mock paths in smoke tests for AssetActionButtons and ListenPag…
EngineerDev11 May 6, 2025
2ff8cd7
Add smoke tests for JoinChoir, StepIndicator, and SubmissionControls …
EngineerDev11 May 6, 2025
49f4e2c
Add smoke tests for LoopingRecording main functionality in SpeakPage
EngineerDev11 May 7, 2025
2b78a9c
Add react hooks dependency to package.json
EngineerDev11 May 7, 2025
aecc245
Add smoke tests for CreateRecordingForm component in SpeakPage
EngineerDev11 May 7, 2025
07d6242
Add smoke tests for LocationSelectForm components in SpeakPage
EngineerDev11 May 7, 2025
f30bc45
Add smoke tests for SpeakPage and TagSelectForm components
EngineerDev11 May 7, 2025
90ce390
Add smoke tests for ActionButton and LandingPage components
EngineerDev11 May 7, 2025
8546a1c
Add smoke tests for Assets, AudioPlayer, ErrorDialog, InfoPopup, Leg…
EngineerDev11 May 8, 2025
b86dbcc
Add smoke tests for AssetFilterPanel and TagFilterMenu components
EngineerDev11 May 8, 2025
8e4face
Add smoke tests for elements components
EngineerDev11 May 8, 2025
44d0130
Add smoke tests for context components
EngineerDev11 May 8, 2025
5649ee3
Update README.md to include smoke testing instructions and details
EngineerDev11 May 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"tabWidth": 2,
"useTabs": false
}
21 changes: 21 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,24 @@ npm start
```
npm run build
```

# Testing

## Smoke Testing

The project uses Jest and React Testing Library for smoke testing.
All smoke tests are located in the `src/__smoke__testing__` directory.

### Running Tests

1. Run all tests:
```
npm test
```

2. Run a specific test file:
```
npm test -- file.test.tsx
# or
npm test -- path/to/test/file.test.tsx
```
31 changes: 31 additions & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
export default {
preset: 'ts-jest',
testEnvironment: 'jsdom',
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
'\\.(css|less|scss|sass)$': 'identity-obj-proxy',
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
'<rootDir>/src/__mocks__/fileMock.js',
'roundware-web-framework': '<rootDir>/node_modules/roundware-web-framework/dist/index.js'
},
setupFilesAfterEnv: ['<rootDir>/src/setupTests.ts'],
transform: {
'^.+\\.(ts|tsx)$': ['ts-jest', {
useESM: true,
tsconfig: 'tsconfig.json'
}],
'^.+\\.js$': ['babel-jest', {
presets: [['@babel/preset-env', { targets: { node: 'current' } }]]
}]
},
testMatch: ['**/__smoke__testing__/**/*.test.(ts|tsx)'],
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
extensionsToTreatAsEsm: ['.ts', '.tsx'],
transformIgnorePatterns: ['node_modules/(?!(.*\\.mjs$|@testing-library|@emotion|roundware-web-framework))'],
globals: {
'ts-jest': {
useESM: true,
tsconfig: 'tsconfig.json'
},
},
};
18 changes: 15 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"version": "1.0.0",
"description": "",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"test": "jest",
"dev": "vite",
"start": "vite",
"preview": "vite preview",
Expand All @@ -23,6 +23,7 @@
"@mui/styles": "^5.8.7",
"@mui/x-date-pickers": "^5.0.16",
"@react-google-maps/api": "^2.2.0",
"@react-google-maps/marker-clusterer": "^2.20.0",
"@turf/boolean-point-in-polygon": "^7.1.0",
"@turf/center-of-mass": "^6.5.0",
"@turf/destination": "^6.5.0",
Expand All @@ -41,6 +42,7 @@
"i": "^0.3.7",
"interweave": "^12.9.0",
"lodash": "^4.17.21",
"marker-clusterer": "link:@types/@react-google-maps/marker-clusterer",
"moment": "^2.29.4",
"nanoid": "^4.0.0",
"nosleep.js": "^0.12.0",
Expand All @@ -53,11 +55,11 @@
"react-device-detect": "^2.1.2",
"react-dom": "^17.0.2",
"react-helmet": "^6.1.0",
"react-router": "^5.2.0",
"react-router": "^5.3.4",
"react-router-dom": "^5.2.0",
"react-share": "^4.4.0",
"regenerator-runtime": "^0.13.9",
"roundware-web-framework": "0.13.0-alpha.1",
"roundware-web-framework": "0.13.1-alpha.1",
"ts-overlapping-marker-spiderfier": "^1.0.3",
"wavesurfer-react": "https://github.com/shreyas-jadhav/wavesurfer-react/raw/tarball/wavesurfer-react-2.0.13.tgz",
"wavesurfer.js": "^5.2.0",
Expand All @@ -66,19 +68,29 @@
"devDependencies": {
"@babel/preset-react": "^7.14.5",
"@svgr/webpack": "^6.2.1",
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^12.1.5",
"@testing-library/react-hooks": "^8.0.1",
"@testing-library/user-event": "^13.5.0",
"@types/autosuggest-highlight": "^3.1.1",
"@types/dom-mediacapture-record": "^1.0.10",
"@types/gtag.js": "^0.0.10",
"@types/jest": "^29.5.14",
"@types/lodash": "^4.14.172",
"@types/node": "^22.13.1",
"@types/react": "^17.0.16",
"@types/react-dom": "^17.0.9",
"@types/react-helmet": "^6.1.2",
"@types/react-router": "^5.1.20",
"@types/react-router-dom": "^5.1.8",
"@types/wavesurfer.js": "^5.2.2",
"@vitejs/plugin-react": "^4.3.4",
"dotenv": "^10.0.0",
"identity-obj-proxy": "^3.0.0",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"nth-check": "^2.0.0",
"ts-jest": "^29.3.2",
"typescript": "^5.7.2",
"vite": "^6.1.0"
},
Expand Down
19 changes: 14 additions & 5 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions src/__mocks__/fileMock.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default 'test-file-stub';
11 changes: 11 additions & 0 deletions src/__mocks__/jest.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import '@testing-library/jest-dom';

declare global {
namespace jest {
interface Matchers<R> extends jest.Matchers<R> {
toBeInTheDocument(): R;
toHaveAttribute(attr: string, value?: any): R;
toHaveStyle(style: Record<string, any>): R;
}
}
}
106 changes: 106 additions & 0 deletions src/__smoke__testing__/App/App.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import '@testing-library/jest-dom';
import { BrowserRouter } from 'react-router-dom';
import { App as AppType } from '../../components/App/App';

// Mock the App component
jest.mock('../../components/App/App', () => ({
App: () => (
<div>
<header role="banner">
<nav role="navigation">
<h1>Test Project</h1>
<img src="logo.png" alt="Logo" className="nav-logo" />
</nav>
</header>
<div data-testid="app-container">
<div data-testid="platform-message"></div>
<div data-testid="main-content">
<div data-testid="landing-page"></div>
<div data-testid="listen-page"></div>
<div data-testid="speak-page"></div>
</div>
</div>
<footer role="contentinfo">
<div data-testid="bottom-bar">
<button data-testid="share-button">Share</button>
<button data-testid="speak-button">Speak</button>
<div data-testid="info-popup"></div>
</div>
</footer>
</div>
)
}));

const { App } = require('../../components/App/App');

describe('App Component Smoke Tests', () => {
it('renders without crashing', () => {
render(
<BrowserRouter>
<App />
</BrowserRouter>
);
});

it('renders the project name in the title', () => {
render(
<BrowserRouter>
<App />
</BrowserRouter>
);

const titleElement = screen.getByText('Test Project');
expect(titleElement).toBeInTheDocument();
});

it('renders the main navigation elements', () => {
render(
<BrowserRouter>
<App />
</BrowserRouter>
);

// Check for main navigation elements
expect(screen.getByRole('banner')).toBeInTheDocument();
expect(screen.getByRole('navigation')).toBeInTheDocument();
});

it('renders the main content area with all sections', () => {
render(
<BrowserRouter>
<App />
</BrowserRouter>
);

expect(screen.getByTestId('app-container')).toBeInTheDocument();
expect(screen.getByTestId('platform-message')).toBeInTheDocument();
expect(screen.getByTestId('main-content')).toBeInTheDocument();
});

it('renders the bottom bar with all controls', () => {
render(
<BrowserRouter>
<App />
</BrowserRouter>
);

expect(screen.getByTestId('bottom-bar')).toBeInTheDocument();
expect(screen.getByTestId('share-button')).toBeInTheDocument();
expect(screen.getByTestId('speak-button')).toBeInTheDocument();
expect(screen.getByTestId('info-popup')).toBeInTheDocument();
});

it('renders all main page sections', () => {
render(
<BrowserRouter>
<App />
</BrowserRouter>
);

expect(screen.getByTestId('landing-page')).toBeInTheDocument();
expect(screen.getByTestId('listen-page')).toBeInTheDocument();
expect(screen.getByTestId('speak-page')).toBeInTheDocument();
});
});
Loading