mirror of
https://github.com/webstudio-is/webstudio.git
synced 2026-11-03 02:27:57 +09:00
## Description Site is too narrow name for things that are pssible with webstudio ## Code Review - [ ] hi @TrySound , I need you to do - conceptual review (architecture, feature-correctness) - detailed review (read every line) - test it on preview ## Before requesting a review - [ ] made a self-review - [ ] added inline comments where things may be not obvious (the "why", not "what") ## Before merging - [ ] tested locally and on preview environment (preview dev login: 5de6) - [ ] updated [test cases](https://github.com/webstudio-is/webstudio/blob/main/apps/builder/docs/test-cases.md) document - [ ] added tests - [ ] if any new env variables are added, added them to `.env.example` and the `builder/env-check.js` if mandatory
180 lines
9.2 KiB
Markdown
180 lines
9.2 KiB
Markdown
1. Instance states
|
|
|
|
- Hover over an instance, check if its outline is correct
|
|
- Select an instance, check if its outline is correct
|
|
|
|
1. 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
|
|
- Drag a Box exactly between 2 Boxes - 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
|
|
- Create a Box with child Boxes, where children are aligned vertically - repeat the tests above with trying to insert inside the new Box
|
|
- Try to drop into a Paragraph - check that it's not allowed, and it drops next to the Paragraph instead
|
|
|
|
1. Moving instances on canvas by drag&drop
|
|
|
|
- Do the tests described in "Create instances by drag&drop",
|
|
but instead of moving a component from the panel to the canvas,
|
|
move a component that's already on the canvas
|
|
- Create a Paragraph, and make a word in it Bold
|
|
- drag & drop the Bold component - check that entire Paragraph have been moved
|
|
- Try to drop a Box inside itself - check that it's not allowed, and it drops next to it instead
|
|
- Create a Box that contains another Box, give the parent Box a padding
|
|
- drag the parent Box, and try to put it inside the child Box - check that it's not allowed, and it drops next to the parent Box instead
|
|
|
|
1. Create instance by clicking on a component
|
|
|
|
- Make sure no instance is selected (no outline in the canvas)
|
|
- Click on a component in the panel - check that it's inserted at the end of the root instance
|
|
- Select an istance that can accept children (e.g. Box), by clicking on it on the canvas
|
|
- Click on a component in the panel - check that it's inserted at the end of the selected instance
|
|
- Select an instance that cannot accept children (e.g. Heading), but choose one that is not the last child of its parent
|
|
- Click on a component in the panel - check that it's inserted in the parent of the selected instance, and that it's positioned right after the selected instance
|
|
|
|
1. Styles apply
|
|
|
|
- Select an instance
|
|
- Change any style
|
|
- See if it is applied
|
|
|
|
1. 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
|
|
|
|
1. Breakpoints
|
|
|
|
- Clicking on different breakpoints resizes the canvas
|
|
- 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
|
|
|
|
1. 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 project in an incognito tab
|
|
- Ensure you can view a forked project in an incognito tab
|
|
- Click on dev login, add the first four characters in 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
|
|
|
|
1. Default properties
|
|
|
|
- Add a Box component to the canvas
|
|
- Open Props panel
|
|
- See the default tag is provided and can be modified
|
|
|
|
1. Asset manager
|
|
|
|
- Open assets panel
|
|
- Upload an image
|
|
- Check it loads and shows a progress bar
|
|
- Delete an asset by clicking on the `x` icon and then the delete button in the tooltip
|
|
|
|
1. Navigator view settings
|
|
|
|
- Initially navigator always shown
|
|
- Check that `Menu > View > Undock navigator` is checked
|
|
- Click on "Show navigator"
|
|
- Navigator is now not shown
|
|
- New tab was added that lets you open navigator
|
|
|
|
1. Navigator keyboard interactions
|
|
|
|
- Move focus to the navigator by clicking on a tree item
|
|
- Check that pressing `arrow up` and `arrow down` changes the selected item
|
|
- Check that you can expand and collapse the selected item using `arrow right`, `arrow left`, and `spacebar`
|
|
- Check that pressing `delete` or `backspace` deletes the selected item
|
|
|
|
1. Navigator drag&drop
|
|
|
|
- Drag a tree item and put the cursor between some tree items
|
|
- check that a line appeared between the tree items
|
|
- check that after you drop, the dragged item moves between the tree items
|
|
- Drag a tree item over an empty `Box` item,
|
|
- check that an outline appears around the `Box` item,
|
|
- check that when you drop, the dragged item moves inside the `Box` item
|
|
- Drag a tree item over a non-empty but collapsed `Box` item
|
|
- check that the `Box` item expands automatically when you hold over it
|
|
- check that if you drop before it expands, the dragged item moves inside the `Box`, and becomes the last child
|
|
- Drag a tree item over a `Heading` item, check that it doesn't allow you to drop inside a `Heading`
|
|
- Make some text inside a `Heading` "bold" so that the `Heading` item in the tree gets a child item `Bold Text`
|
|
- check that you cannot drag the `Bold Text` item
|
|
- Start dragging a tree item but do not move the cursor vertically
|
|
- check that by moving horizontally you're able to change how deeply the item is nested inside the tree
|
|
- Drag an item between some tree items
|
|
- check that moving the cursor horizontally allows you to change the depth of the placement indicator line
|
|
- check that after you drop, the dragged item moves to the correct depth
|
|
- Check that after a drag&drop the dragged item is the selected item
|
|
|
|
1. Flex panel
|
|
|
|
- Select an instance
|
|
- Select "flexbox" as the selected display option.
|
|
- Check if clicking a flex property icon opens a dropdown.
|
|
- Check if all flexbox states are computable through the icons seletables.
|
|
- Check if all flexbox states are computable through the grid.
|
|
- Check if gap inputs work.
|
|
- Check if tooltips are present on all icons(including gap input icons).
|
|
- Check that tooltips have a first time interaction delay.
|
|
|
|
1. Creating a new page
|
|
|
|
- Open the pages panel
|
|
- Click on the "New Page" button in the panel header
|
|
- Enter a page name
|
|
- Enter a page path
|
|
- Click on the "Create" button
|
|
- Check than the page is created and selected as the current page
|
|
- Repeat the proccess and make sure it doens't allow you to create a page with an empty name or a path that's used for another page
|
|
|
|
1. Deleting a page
|
|
|
|
- Open the pages panel
|
|
- Make sure you have pages other than the Home page, create one if you don't
|
|
- Click on the menu icon of a page other than the Home page
|
|
- Page settings should open
|
|
- Click on the delete icon in the page settings header
|
|
- Page settings should close
|
|
- Page should disappear from the list
|
|
- If the page was selected, the Home page should become selected instead
|
|
- In the Home page settings, the delete icon should be absent
|
|
|
|
1. Editing a page
|
|
|
|
- Open the pages panel
|
|
- Click on the menu icon of a page
|
|
- Page settings should open
|
|
- Change the page name
|
|
- The name should change in the pages list as well (with a small delay)
|
|
- Change the page path
|
|
- Reload browser tab and open the page settings again and make sure your changes are persisted
|