Files
webstudio/docs/test-cases.md
T
2022-06-26 14:25:49 +02:00

4.0 KiB

  1. Instance states

    • Hover over an instance, check if its outline is correct
    • Select an instance, check if its outline is correct
  2. Create instances by drag&drop

    • Drag a component over an instance - check if its outline is correct
    • Drag a box over a box, drop it - check if it was inserted in that box
    • Drag a box and place it before a box - check if it was inserted before
    • Drag a box and place it after a box - check if it was inserted after
    • Select an instance, got to components, click a box - check if it was inserted at the end of the selected instance
    • Drag a box exactly between 2 boxs - check if it was inserted between
    • Drag a box to the bottom edge - check if parent box gets outlined and insertion happened after that dragged over box inside that outlined parent
    • Drag a box to the top edge - check if parent box gets outlined and insertion happened before that dragged over box inside that outlined parent
  3. Styles apply

    • Select an instance
    • Change any style
    • See if it is applied
  4. Content editable components

    • Add any contenteditable component (heading, paragraph, text ...)
    • Check if you can drag&drop it on the canvas
    • Double click or press enter to enter editing mode
    • Press escape or click away to exit editing mode
    • Selecting with the mouse any char or word shows a menu abov e it
    • Selecting with keybord does the same
    • Changing selection using mouse or keyboard moves the menu
    • Menu shows correctly on very left, right, top corners
    • Typing renders typed characters as expected
    • After editing and unfocusing the component content stays the way it was changed
    • After each menu action unfocus component and see that content stays the way it was changed
    • Run every action on first, middle and last word, on first line on second line and on the last line
    • Enter multiline text, unfocus
    • Check every change is also saved when after reloading
    • Enter text and unfocus quickly - changes shouldn't disappear
    • Keep typing text for some time and see in network tab that we send only a few requests, not one for each char
  5. Breakpoints

    • Clicking on different breakpoints resizes the canvas
    • Canvas width slider lets you resize canvas only within its bounds
    • Zoom slider works
    • Hovering over breakpoints with the mouse shows the right one in preview
    • Click on Edit breakpoints shows you breakpoints editor
      • lets you change the breakpoint min-width value and it gets applied immediately on the canvas and on the width slider constraint
      • adding a new breakpoint adds it, lets you specify the value, works like every other breakpoint
      • Trash icon button shows confirmation dialog and upon confirmation
        • Delete button deletes the corresponding styles of that breakpoint entirely
        • Abort button doesn't delete and returns you to breakpoints editor
      • Done button returns you to breakpoints selector
    • Click anywhere outside of breakpoints closes breakpoints selector
    • Click on the canvas closes breakpoints selector
    • Styles added on each breakpoint are only applied to each breakpoint, verify that by resizing the canvas in preview mode
    • Resizing canvas width in preview mode doesn't limit resize slider to each breakpoint
  6. Auth

    • Try to access the dashboard when not logged in to make sure you will be redirected to the login page
    • Open the login page when logged in to make sure you are redirected to the dashboard
    • Ensure you can view a built site in an incognito tab
    • Ensure you can view a forked site in an incognito tab
    • Click on dev login, add the AUTH_SECRET value in the .env value and make sure user is authenticated and redirected to the dashboard
    • Click on dev login and write a wrong value to make sure you get an error message and stay in the login page.
    • Click on login with GitHub and make sure that you are redirected to the dashboard
    • Click on login with Google and make sure that you are redirected to the dashboard