npm installnpm run devRun Unit Tests with Vitest
npm run test:unitnpm run test:coverageRun End-to-End Tests with Cypress
npm run dev
npm run test:e2e # or `npm run test:e2e:head` for headless testingBesides the application itself, below are the features that were also covered during this challenge:
- Responsiveness design: desktop and mobile.
- Accessibility options: implementation of two modes, elder mode and color blindness mode. When the user activates the elder mode, the font-size of the application increases. While selecting color blindness mode helps color-blind users to better identify text boxes.
- 404 Page: to illustrate the use of vue-router.
- Empty state page: to give an indication to the user when there are no transcriptions created.
- Unit testing.
- E2E testing with Cypress.
| File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s |
|---|---|---|---|---|---|
| All files | 99.77 | 95.65 | 100 | 99.77 | |
| components/accessibility-options | 100 | 100 | 100 | 100 | |
| AccessibilityOptions.vue | 100 | 100 | 100 | 100 | |
| components/checkbox | 100 | 100 | 100 | 100 | |
| Checkbox.vue | 100 | 100 | 100 | 100 | |
| components/content | 100 | 100 | 100 | 100 | |
| Content.vue | 100 | 100 | 100 | 100 | |
| components/default-page | 100 | 100 | 100 | 100 | |
| DefaultPage.vue | 100 | 100 | 100 | 100 | |
| components/icon-button | 100 | 100 | 100 | 100 | |
| IconButton.vue | 100 | 100 | 100 | 100 | |
| components/input | 97.29 | 80 | 100 | 97.29 | |
| Input.vue | 97.29 | 80 | 100 | 97.29 | 35-36 |
| components/layout | 100 | 100 | 100 | 100 | |
| Layout.vue | 100 | 100 | 100 | 100 | |
| components/list-item | 100 | 100 | 100 | 100 | |
| Item.vue | 100 | 100 | 100 | 100 | |
| components/list-item/item-body | 100 | 100 | 100 | 100 | |
| ItemBody.vue | 100 | 100 | 100 | 100 | |
| components/list-item/item-title | 100 | 100 | 100 | 100 | |
| ItemTitle.vue | 100 | 100 | 100 | 100 | |
| components/modal | 100 | 100 | 100 | 100 | |
| Modal.vue | 100 | 100 | 100 | 100 | |
| components/page-title | 100 | 100 | 100 | 100 | |
| PageTitle.vue | 100 | 100 | 100 | 100 | |
| components/toggle-button | 100 | 100 | 100 | 100 | |
| ToggleButton.vue | 100 | 100 | 100 | 100 | |
| components/top-bar | 100 | 100 | 100 | 100 | |
| TopBar.vue | 100 | 100 | 100 | 100 | |
| shared/utils | 100 | 100 | 100 | 100 | |
| accessibilityOptions.js | 100 | 100 | 100 | 100 |