Manual Testing Checklist
Use this checklist to verify the app is working as intended before a release or after significant changes.
1. Authentication
- Visiting the app when not logged in shows the login prompt
- Entering the wrong password shows an error and does not log in
- Entering the correct password logs in and dismisses the login prompt
- After logout, API requests are rejected (refreshing the page requires re-login)
- Auth token persists across page refreshes (user stays logged in)
2. App
- App loads without errors
- App keeps session data
- Theme
- Login token
- App displays Sidebar and Start Page on open
- App can be switched between light mode and dark mode
- App displays the correct version and copyright on the bottom right
3. Start Page
- Start page looks nice and is centered in the Workspace area
- Start page can be seen above the background grid
- Start page correctly informs user of their server connection state
- New Project button creates a new local project and loads it
- Open Local Project button opens a system dialog that lets the user load a project, and loads it
- Open Docs navigates to the User Guide on a new tab
4. Sidebar
- Sidebar displays user account and settings buttons at top (currently not hooked up)
- Sidebar displays Open and New button
- Server access panel can be seen
- If server is connected, access panel is collapsed, and displays the Disconnect button on expand
- If server is disconnected, access panel is open and displays Server, Password and Connect
- Status dot next to SERVER is green if connected, red if disconnected
- If server is disconnected, Project area displays text saying there are no projects
- If server is connected, Project area displays any projects that are accessible to the user
- Open Docs button is displayed, and opens the User Guide in a new tab
- Theme selector is displayed, and allows user to switch between Auto, Light and Dark
- Shortcuts panel is visible and has correct shortcuts listed
- Sidebar can freely collapse and expand without issues
5. Projects
- If there are no server projects, the SERVER section is not visible
- If there are no local projects, the LOCAL section is not visible
- If there are server projects, all available server projects are displayed as separate entries in the SERVER section
- If there are local projects, all loaded local projects are displayed as separate entries in the SERVER section
- Right-clicking the project area without hovering over a project opens a truncated context menu that allows user to open or create project
- Right-clicking a project brings up a full context menu with options to rename, duplicate, delete, localize, or download the project, as well create or open
- All context buttons work as intended
- A project that is Dirty displays the upload button
- A project that is Clean does not display the upload button
- Clicking on a project opens it in the workspace
6. Workspace
- All three panels and the header appear (blank in empty project)
- Title correctly displays the project name
- Status buttons correctly summarize connection and save status of the project
- Clicking on the project name allows you to edit it, and accepting the edit also updates the sidebar
- The download button downloads the project, and the upload button uploads it
6.1. Waveform Panel
- The Add Audio button opens a file dialog and allows you to select an audio file, then loads it into the panel
- If project already has a waveform, it is loaded into the panel
- Adding an audio file when one already is present warns the user about overwriting
- Adding an audio file makes the project dirty
- The waveform is correctly displayed, zoom at 1x
- The waveform is displayed in the minimap
- Scrolling on the waveform zooms
- Scrolling on the minimap pans
- Hovering cursor over the waveform moves the hover line, and it correctly displays the timecode
- All controls work as expected
6.2. Transcript Panel
6.3. Speakers Panel
UNFINISHED
10. Error Handling & Edge Cases
- Opening the app with no projects shows the start page (not a blank screen or error)
- A project with an empty transcript displays the waveform but an empty transcript panel
- A project with no speakers defined does not crash the speakers panel
- Rapidly splitting and merging segments does not corrupt the transcript
- Closing or refreshing the browser tab with unsaved changes prompts a warning (if applicable)
- Server requests that fail (e.g., network error) show an error notification rather than silently failing
- The app recovers gracefully if the server goes offline mid-session