Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: create from React component UI #24982

Merged

Conversation

astone123
Copy link
Contributor

@astone123 astone123 commented Dec 5, 2022

User facing changelog

n/a (this can go in the feature branch PR)

Additional details

This PR adds the base UI for Create from React component.

Steps to test

  • Open CT with a React project (that doesn't use a custom dev server - we don't support this yet)
  • Click New Spec button in the top-right corner
  • Select create from component
  • See the list of files that matches the file glob (excluding config files and Cypress-related files)
  • Expand some of the rows
  • See that if there are no React components exported from a given file that you see "No components found" in the expanded content
  • See that if there are React components exported from a file that you see those components listed in the expanded content
  • Verify that clicking on the component generates a spec file that correctly mounts the component

Verify that the design matches Figma (minus the "choose a file name for this spec" which will be added with #25005)

How has the user experience changed?

https://www.loom.com/share/bfe89f3314f5441f85d5ff97b9667140

PR Tasks

Outstanding Items

@lmiller1990
Copy link
Contributor

I got the same problem as @marktnoonan but I think it was due to usage with watch mode and refreshing too fast.

Copy link
Contributor

@ZachJW34 ZachJW34 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a few comments, biggest is the throw error which we shouldn't be doing but rather returning the error info in the response. Not sure how the error bubbles up but that could be what Mark is experiencing.

.eslintignore Outdated Show resolved Hide resolved
Copy link
Contributor

@ZachJW34 ZachJW34 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My comments have been addressed. Works great!!!

Looks like you're building the binaries. Going to approve but would like to test those out as well.

Copy link
Contributor

@lmiller1990 lmiller1990 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couple of tiny things, but I think this looks good. Mainly curious about #24982 (comment).

.eslintignore Outdated Show resolved Hide resolved
isDefault: item.isDefault,
})

generateSpecFromSource.value = data?.generateSpecFromSource
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refactor later means refactor never - happy to live with this for now, but I hope we can start to think about how to get a handle of GraphQL. Things are getting quite messy, I think the core problem is we should be handling this on the back-end and giving the client a more well defined response in the first place. It would eliminate the need for the conditionals in the frontend.

packages/scaffold-config/src/frameworks.ts Outdated Show resolved Hide resolved
@astone123
Copy link
Contributor Author

Having an issue with dependencies (looks like Babel) after merging in changes from develop. See the latest pipeline runs. Working on this now

@lmiller1990 lmiller1990 merged commit f61688c into feature/create-from-react-component Dec 14, 2022
@lmiller1990 lmiller1990 deleted the astone123/create-from-react-ui branch December 14, 2022 20:47
lmiller1990 added a commit that referenced this pull request Dec 19, 2022
* feat: server logic for create from React component (#24881)

Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>

* fix: add default export detection (#24954)

Co-authored-by: astone123 <adams@cypress.io>

* update cache

* update yarn.lock to fix builds

* fix: compilation with webpack preprocessor

* feat: create from React component UI (#24982)

* feat: WIP server logic for create from React component

* feat: add more tests; error handling

* feat: WIP create from React UI

* feat: PR feedback [run CI]

* feat: try committing snapshot cache changes [run ci]

* feat: try re-generating snapshot [run ci]

* fix build

* regenerate cache on darwin

* update caches

* Revert "feat: try re-generating snapshot [run ci]"

This reverts commit d763e1f.

* fix typing error

* types

* fix test

* chore: try using react-docgen@6.0.0-alpha.3

* update test

* regen linux snapshot

* update snapshots for darwin

* re-gen linux snapshot

* yarn install

* update snapshots

* update snapshot metadata

* update snapshots due to babel deps changing slightly

* make react docgen a dep

* update tests

* revert

* snapshots again??

* revert

* update

* update

* try change snapshot

* change snap

* update snap

* feat: remove unnecessary ts-ignore

* feat: add more test cases

* feat: create CodegenActions; other minor refactors

* feat: continue UI work

* feat: ignore config and Cypress-related files

* feat: PR feedback

* update Vue component link

* merge in default export work

* consolidate graphql queries

* other misc feedback

* use network-only policy to fetch files; include cypress/ dir for code gen candidates; fix type error

* add basic e2e test

* fix app integration tests

* refactor and fix app component and webpack dev server tests

* add error state; fix unit tests [skip ci]

* simplify generator show logic [skip ci]

* more testing

* fix types

* style updates [skip ci]

* fix error state [skip ci]

* fix list padding [skip ci]

* use slots (#25079)

* add more tests; fix unit tests

* fix types

* fix test describe

* add percy snapshots for new list

* update trouble rendering banner link [skip ci]

* use collapsible component

* use button for component list items

* fix tests

* build binaries

* revert changes to circle config

* remove eslintignore and extra loading div [skip ci] because we know it will fail

* revert changes to framework glob patterns [skip ci]

Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>

* feat: pass parser options to allow parsing of tsx files (#25145)

* fix create from component e2e test

* build binaries [run ci]

* fix component tests [run ci]

* regen windows snapshot

Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Zachary Williams <ZachJW34@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants