Skip to content

fix: remove 'new' badge from Create from Component, fix parsing #31457

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

Open
wants to merge 6 commits into
base: develop
Choose a base branch
from

Conversation

astone123
Copy link
Contributor

@astone123 astone123 commented Apr 7, 2025

Additional details

This PR removes the "New" badge for the Create from Component feature - we released it over two years ago. It also fixes an issue where we would fail to parse component files for certain projects that had babel configurations in their project root. You can see this issue with cypress-services dashboard tests - if you try to use Create from Component with any of these files, it will error on all of them because of Babel plugin issues from the project's Babel config. We don't want to use the project's configuration file.

Steps to test

On develop

  1. Open cypress-services/frontend/packages/dashboard in CT
  2. Click "New Spec" in the top-right
  3. Click Create from Component
  4. Expand some files in the project - notice that all of them say "Unable to parse"
  5. Switch to this branch
  6. Verify that the "new" badge is no longer displayed on this option
  7. Verify that the React components are correctly identified for the files in cypress-services dashboard

PR Tasks

@astone123 astone123 self-assigned this Apr 7, 2025
@@ -33,6 +33,7 @@ export class CodegenActions {
let result = parseReactComponent(src, {
resolver: findAllWithLink(exportResolver, reactDocgenResolvers),
babelOptions: {
configFile: false,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This option disables the use of a config file for Babel. this is what we want since we're calling it directly, we don't want to pick up any config file that might be in the project

https://babeljs.io/docs/options#configfile

Copy link
Contributor

Choose a reason for hiding this comment

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

is it possible to add a test for this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@AtofStryker I added a test in CodegenActions.spec.ts just to make sure that we pass this option to Babel. I went down the road of trying to do a system test for this instead, but couldn't get it to work

Copy link
Contributor

Choose a reason for hiding this comment

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

its probably hard to do a system test since its code generation for a component? Have you tried a cy-in-cy test? That would give us the most coverage here

Copy link
Contributor

Choose a reason for hiding this comment

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

@astone123 any luck with the cy-in-cy test?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

no I haven't looked at it yet, will try it out this week

Copy link

cypress bot commented Apr 7, 2025

cypress    Run #61755

Run Properties:  status check failed Failed #61755  •  git commit acdcf8eb0c: Merge branch 'develop' into create-from-component-fix
Project cypress
Branch Review create-from-component-fix
Run status status check failed Failed #61755
Run duration 18m 25s
Commit git commit acdcf8eb0c: Merge branch 'develop' into create-from-component-fix
Committer Adam Stone-Lord
View all properties for this run ↗︎

Test results
Tests that failed  Failures 1
Tests that were flaky  Flaky 8
Tests that did not run due to a developer annotating a test with .skip  Pending 1232
Tests that did not run due to a failure in a mocha hook  Skipped 0
Tests that passed  Passing 32128
View all changes introduced in this branch ↗︎
UI Coverage  46.31%
  Untested elements 184  
  Tested elements 163  
Accessibility  92.59%
  Failed rules  3 critical   7 serious   2 moderate   1 minor
  Failed elements 885  

Tests for review

Failed  src/components/StandardModal.cy.tsx • 1 failed test • frontend-shared-ct

View Output

Test Artifacts
An uncaught error was detected outside of a test Test Replay
Flakiness  issues/28527.cy.ts • 1 flaky test • 5x-driver-electron

View Output

Test Artifacts
issue 28527 > fails and then retries and verifies about:blank is not displayed Test Replay Screenshots
Flakiness  issues/28527.cy.ts • 1 flaky test • 5x-driver-chrome

View Output

Test Artifacts
issue 28527 > fails and then retries and verifies about:blank is not displayed Test Replay Screenshots
Flakiness  commands/waiting.cy.js • 1 flaky test • 5x-driver-chrome:beta

View Output

Test Artifacts
... > errors > throws when route is never resolved Test Replay
Flakiness  issues/28527.cy.ts • 1 flaky test • 5x-driver-chrome:beta

View Output

Test Artifacts
issue 28527 > fails and then retries and verifies about:blank is not displayed Test Replay Screenshots
Flakiness  commands/net_stubbing.cy.ts • 1 flaky test • 5x-driver-firefox

View Output

Test Artifacts
... > stops waiting when an xhr request is canceled
    </td>
  </tr></table>

The first 5 flaky specs are shown, see all 8 specs in Cypress Cloud.

@@ -33,6 +33,7 @@ export class CodegenActions {
let result = parseReactComponent(src, {
resolver: findAllWithLink(exportResolver, reactDocgenResolvers),
babelOptions: {
configFile: false,
Copy link
Contributor

Choose a reason for hiding this comment

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

is it possible to add a test for this?

@astone123 astone123 requested a review from AtofStryker April 18, 2025 18:01
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.

2 participants