mirror of
https://github.com/cypress-io/cypress.git
synced 2026-05-12 18:29:53 -05:00
fc30118252
* Remove unused stuff * Fix eslint errors * Use local cypress running script * Fix dependency resolution * Revert "Fix dependency resolution" This reverts commit01a70be211. * Add @cypress/react CI * Properly resolve @types pacakges * Run tests with mocha * Fix cypress tests * Fix or skip some specs * Add retries to the card-spec.js * Remove jest mocks * Run e2e examples on CI * Fix yarn cache key * Fix e2e examples jobs * Rename cypress-react-unit-test with @cypress/react * Fix circleci.yml * Revert "Fix e2e examples jobs" This reverts commitefcc7c4d19. * Revert " Rename cypress-react-unit-test with @cypress/react" This reverts commit4febfcc82b. * Replce cypress-react-unit-test with @cypress/react * Persist build artifacts * Fix working directory paths circle.yml * Fix more CI * adding yarn.lock files * Make package.json for folder * Remove .npmrc * Update circle.yml * Remove unused files * Copy plugins files to the "dist" folder * Fix links to the github repos * Move init wizard from npm/react/init to npm/wizard * Move init wizard from npm/react/init to npm/wizard * Implement initial vue template * Run wizard tests on CI * Refactor continue: bool to success: bool for better code readability * Fix circleci.yml * Use only absolute paths for tests * Stub process.exit calls * Remove useless comments * Add installation cypress to the wizard logic * More improvements * Include packages/examples/cypress into git * Commit new files * Use packages/example as SST for generated files * Last improvements for wizard * Update packages/server/lib/scaffold.js * Rename wizard to create-cypress-tests * Fix circleci config * Fix snapshot tests * Run all create-cypress-tests on ci * Do not install plugins and scaffold files from kitchensink * Ignore integration/examples folder for packages/example * Run create-cypress-tests-tests on CI * Add copy example cross-platform script * Use copy example script in tests * feat: create-cypress-tests auto-inject config (#9116) * Implement the basic babel code transformation for configs * Add more tests for edge-cases * Add snapshot tests for autogenerated code for each template * Add git status guard * Add git status guard * Fix last test * Fix tests * Revert changes for packages/example * Revert changes for packages/example/tsconfig.json * Prepeare package for the release * Fix inquirer name * v0.0.125 * v0.0.127 * v0.0.128 * v0.0.130 * v0.0.131 * Add more UX features * Add vue-cli template * Make src as default folder for vue-cli template * Revert dev-time changes * Run appveyour windows build * Run full appveyour build * Fix circle.yml * Update plugins * Join paths for windows * Revert example/lib changes * Fix tests * Revert unnecessary changes * Implement dev-server dependency installation * Update npm/create-cypress-tests/README.md * Properly exit process if react tests failed * Fix circleci reporter not found * Update nextjs plugin * react-scripts plugin for dev-server * Implement webpack-file plugin support * v0.0.502 * v0.0.503 * Implement rollup support * Implement babel plugin * Update webpack options * Fix nextjs plugin * Unmount components in beforeEach to prevent side-effects * Rename preprocessor to injectDevServer * Fix next.js example * Fix webpack-options exampel * Reproduce rollup problem * Update create-cypress-tests snapshots * Do not run examples/rollup * Uncomment test * Change paralllelism * Remove useless checks * Update snapshots Co-authored-by: Jessica Sachs <jess@jessicasachs.io>
43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
import * as babel from '@babel/core'
|
|
import path from 'path'
|
|
import { Template } from '../Template'
|
|
import { findWebpackConfig } from '../templateUtils'
|
|
|
|
export const WebpackTemplate: Template<{ webpackConfigPath: string }> = {
|
|
message:
|
|
'It looks like you have custom `webpack.config.js`. We can use it to bundle the components for testing.',
|
|
getExampleUrl: () => {
|
|
return 'https://github.com/cypress-io/cypress/tree/develop/npm/react/examples/webpack-file'
|
|
},
|
|
recommendedComponentFolder: 'cypress/component',
|
|
dependencies: ['@cypress/webpack-dev-server'],
|
|
getPluginsCodeAst: (payload, { cypressProjectRoot }) => {
|
|
const includeWarnComment = !payload
|
|
const webpackConfigPath = payload
|
|
? path.relative(cypressProjectRoot, payload.webpackConfigPath)
|
|
: './webpack.config.js'
|
|
|
|
return {
|
|
Require: babel.template.ast('const injectDevServer = require("@cypress/react/plugins/load-webpack")'),
|
|
ModuleExportsBody: babel.template.ast([
|
|
includeWarnComment
|
|
? '// TODO replace with valid webpack config path'
|
|
: '',
|
|
`config.env.webpackFilename = '${webpackConfigPath}'`,
|
|
'injectDevServer(on, config)',
|
|
'return config // IMPORTANT to return the config object',
|
|
].join('\n'), { preserveComments: true }),
|
|
}
|
|
},
|
|
test: (root) => {
|
|
const webpackConfigPath = findWebpackConfig(root)
|
|
|
|
return webpackConfigPath ? {
|
|
success: true,
|
|
payload: { webpackConfigPath },
|
|
} : {
|
|
success: false,
|
|
}
|
|
},
|
|
}
|