mirror of
https://github.com/cypress-io/cypress.git
synced 2026-02-11 01:29:59 -06:00
* Revert "chore: simplify build script (#27547)" This reverts commit0a86ec686e. * Revert "chore: upgrade lerna to 6, cache build step (#26913)" This reverts commit9e60aeba8f. * [run ci] * chore: upgrade lerna to 6, cache build step (#26913) * chore: update build-npm-modules script * chore: update build-npm-modules script * chore: update build-npm-modules script * chore: update build-npm-modules script * chore: update lerna to 6 * [run ci] * try caching build step * we can't clean without building after * add dependencies on scripts for npm packages * update commands * add config for data-context build step * fix output configurations for npm packages, add gitignores * revert changes to config and data-context build steps * fix outputs * run with cache * fix outputs for cli * actually fix outputs * test with cache --------- Co-authored-by: astone123 <adams@cypress.io> * chore: simplify build script (#27547) * chore: simplify build script * update CI workflows * fix workflows * empty commit because Percy weirdness * chore: add driver, reporter, config as implicit dependencies for runner package (#27559) * run all workflows on branch * chore: parallelize test-binary-against-recipes CI step (#27570) * chore: fix some easy circular dependencies in dep graph (#27612) * chore: remove gulp tasks from postinstall (#27616) * empty commit * chore: minor improvements to node_modules_install (#27647) * chore: fix cypress:open and dev scripts * run with cache [run ci] * exclude mochaawesome assets from .yarnclean [run ci] * bump cache again [run ci] * run cached [run ci] * chore: do not cache cli build step [run ci] * update workflow command and docs for build-cli [run ci] * fix commands that use scope [run ci] * use different branch for publish repo [run ci] * percy weirdness? [run ci] * fix postbuild cli script [run ci] * try to remove typescript from production binary [run ci] * fix circular dependency [run ci] * try removing ts from node_modules [run ci] * remove typescript resolution [run ci] * remove redundant target scripts * update to lerna scoped commands * remove unneeded yarn in lerna command * try to fix Electron install in Windows workflow --------- Co-authored-by: Jordan <jordan@jpdesigning.com> Co-authored-by: Dave Kasper <dave.m.kasper@gmail.com>
47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
const fs = require('fs-extra')
|
|
const { buildSchema, extendSchema, parse, introspectionFromSchema, isObjectType } = require('graphql')
|
|
const path = require('path')
|
|
|
|
const graphQlPackageRoot = path.join(__dirname, '..', '..', 'graphql')
|
|
const frontendSharedRoot = path.join(__dirname, '..')
|
|
|
|
/**
|
|
* Adds two fields to the GraphQL types specific to testing
|
|
*
|
|
* @param schema
|
|
* @returns
|
|
*/
|
|
function generateTestExtensions (schema) {
|
|
const objects = []
|
|
const typesMap = schema.getTypeMap()
|
|
|
|
for (const [typeName, type] of Object.entries(typesMap)) {
|
|
if (!typeName.startsWith('__') && isObjectType(type)) {
|
|
if (isObjectType(type)) {
|
|
objects.push(typeName)
|
|
}
|
|
}
|
|
}
|
|
|
|
return `
|
|
union TestUnion = ${objects.join(' | ')}
|
|
|
|
extend type Query {
|
|
testFragmentMember: TestUnion!
|
|
testFragmentMemberList(count: Int = 2): [TestUnion!]!
|
|
}
|
|
`
|
|
}
|
|
|
|
async function generateFrontendSchema () {
|
|
const schemaContents = await fs.promises.readFile(path.join(graphQlPackageRoot, 'schemas/schema.graphql'), 'utf8')
|
|
const schema = buildSchema(schemaContents, { assumeValid: true })
|
|
const testExtensions = generateTestExtensions(schema)
|
|
const extendedSchema = extendSchema(schema, parse(testExtensions))
|
|
|
|
await fs.ensureDir(path.join(frontendSharedRoot, 'src/generated'))
|
|
await fs.writeFile(path.join(frontendSharedRoot, 'src/generated/schema-for-tests.gen.json'), JSON.stringify(introspectionFromSchema(extendedSchema), null, 2))
|
|
}
|
|
|
|
generateFrontendSchema()
|