Files
cypress/packages/graphql/schemas/schema.graphql
T
2022-05-12 17:45:25 -05:00

1484 lines
37 KiB
GraphQL

### This file was generated by Nexus Schema
### Do not make changes to this file directly
"""Represents state of auth based on most recent message from login flow"""
type AuthState {
"""Whether the browser was successfully opened for login"""
browserOpened: Boolean!
"""Message for the auth state"""
message: String
"""Name of auth state, e.g. AUTH_BROWSER_LAUNCHED"""
name: AuthStateNameEnum
}
enum AuthStateNameEnum {
AUTH_BROWSER_LAUNCHED
AUTH_COULD_NOT_LAUNCH_BROWSER
AUTH_ERROR_DURING_LOGIN
}
"""Container representing a browser"""
type Browser implements Node {
channel: String!
disabled: Boolean!
displayName: String!
family: BrowserFamily!
"""Relay style Node ID field for the Browser field"""
id: ID!
isFocusSupported: Boolean!
isSelected: Boolean!
isVersionSupported: Boolean!
majorVersion: String
name: String!
path: String!
version: String!
warning: String
}
enum BrowserFamily {
chromium
firefox
}
enum BrowserStatus {
closed
open
opening
}
"""
When we don't have an immediate response for the cloudViewer request, we'll use this as a fallback to
render the avatar in the header bar / signal authenticated state immediately
"""
type CachedUser implements Node {
"""Email address of the cached user"""
email: String
"""Name of the cached user"""
fullName: String
"""Relay style Node ID field for the CachedUser field"""
id: ID!
}
"""
A CloudOrganization represents an Organization stored in the Cypress Cloud
"""
type CloudOrganization implements Node {
"""Globally unique identifier representing a concrete GraphQL ObjectType"""
id: ID!
"""Name of the organization"""
name: String
"""A connection for cloud projects associated with this organization"""
projects(
"""Returns the elements in the list that come after the specified cursor"""
after: String
"""Returns the elements in the list that come before the specified cursor"""
before: String
"""Returns the first n elements from the list."""
first: Int
"""Returns the last n elements from the list."""
last: Int
): CloudProjectConnection
}
type CloudOrganizationConnection {
"""
https://facebook.github.io/relay/graphql/connections.htm#sec-Edge-Types
"""
edges: [CloudOrganizationEdge!]!
"""Flattened list of CloudOrganization type"""
nodes: [CloudOrganization!]!
"""
https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo
"""
pageInfo: PageInfo!
}
type CloudOrganizationEdge {
"""https://facebook.github.io/relay/graphql/connections.htm#sec-Cursor"""
cursor: String!
"""https://facebook.github.io/relay/graphql/connections.htm#sec-Node"""
node: CloudOrganization!
}
"""A CloudProject represents a Project stored in the Cypress Cloud"""
type CloudProject implements Node {
"""A link to the settings page of the project in the dashboard"""
cloudProjectSettingsUrl: String!
"""A link to the project in the dashboard"""
cloudProjectUrl: String!
"""Globally unique identifier representing a concrete GraphQL ObjectType"""
id: ID!
"""The latest run for a given spec"""
latestRun: CloudRun
"""Given name of the project"""
name: String!
"""The organization the project is a member of"""
organization: CloudOrganization
"""Record keys for the service"""
recordKeys: [CloudRecordKey!]
"""A connection field type"""
runs(
"""Returns the elements in the list that come after the specified cursor"""
after: String
"""Returns the elements in the list that come before the specified cursor"""
before: String
cypressVersion: String
"""Returns the first n elements from the list."""
first: Int
"""Returns the last n elements from the list."""
last: Int
status: CloudRunStatus
): CloudRunConnection
"""Unique identifier for a Project"""
slug: String!
}
type CloudProjectConnection {
"""
https://facebook.github.io/relay/graphql/connections.htm#sec-Edge-Types
"""
edges: [CloudProjectEdge!]!
"""Flattened list of CloudProject type"""
nodes: [CloudProject!]!
"""
https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo
"""
pageInfo: PageInfo!
}
type CloudProjectEdge {
"""https://facebook.github.io/relay/graphql/connections.htm#sec-Cursor"""
cursor: String!
"""https://facebook.github.io/relay/graphql/connections.htm#sec-Node"""
node: CloudProject!
}
"""Unable to find cloud project"""
type CloudProjectNotFound {
"""an error message"""
message: String!
}
union CloudProjectResult = CloudProject | CloudProjectNotFound | CloudProjectUnauthorized
"""Unauthorized access"""
type CloudProjectUnauthorized {
"""does the user have a requested access pending"""
hasRequestedAccess: Boolean
"""an error message"""
message: String!
}
type CloudRecordKey implements Node {
createdAt: DateTime
"""Globally unique identifier representing a concrete GraphQL ObjectType"""
id: ID!
"""The Record Key"""
key: String
lastUsedAt: DateTime
}
"""A Recorded run of the Test Runner, typically to the cloud"""
type CloudRun implements Node {
commitInfo: CloudRunCommitInfo
createdAt: DateTime
"""Globally unique identifier representing a concrete GraphQL ObjectType"""
id: ID!
status: CloudRunStatus
tags: [CloudRunTag]
"""
Total duration of the run in milliseconds, accounting for any parallelization
"""
totalDuration: Int
"""This is the number of failed tests across all groups in the run"""
totalFailed: Int
"""Number of flaky tests"""
totalFlakyTests: Int
"""This is the number of passed tests across all groups in the run"""
totalPassed: Int
"""This is the number of pending tests across all groups in the run"""
totalPending: Int
"""This is the number of running tests across all groups in the run"""
totalRunning: Int
"""This is the number of skipped tests across all groups in the run"""
totalSkipped: Int
"""This is the number of tests across all groups in the run"""
totalTests: Int
"""A link to the run page"""
url: String
}
type CloudRunCommitInfo {
authorAvatar: String
authorEmail: String
authorName: String
branch: String
branchUrl: String
message(
"""Number of characters to truncate the commit message to"""
truncate: Int
): String
sha: String
summary: String
url: String
}
type CloudRunConnection {
"""
https://facebook.github.io/relay/graphql/connections.htm#sec-Edge-Types
"""
edges: [CloudRunEdge!]!
"""Flattened list of CloudRun type"""
nodes: [CloudRun!]!
"""
https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo
"""
pageInfo: PageInfo!
}
type CloudRunEdge {
"""https://facebook.github.io/relay/graphql/connections.htm#sec-Cursor"""
cursor: String!
"""https://facebook.github.io/relay/graphql/connections.htm#sec-Node"""
node: CloudRun!
}
"""Possible check status of the test run"""
enum CloudRunStatus {
CANCELLED
ERRORED
FAILED
NOTESTS
OVERLIMIT
PASSED
RUNNING
TIMEDOUT
}
type CloudRunTag implements Node {
"""Globally unique identifier representing a concrete GraphQL ObjectType"""
id: ID!
name: String
}
"""A CloudUser represents an User stored in the Cypress Cloud"""
type CloudUser implements Node {
"""Url to manage cloud organizations for this user"""
cloudOrganizationsUrl: String
"""Url to the profile of the current user on the dashboard"""
cloudProfileUrl: String
"""Url to create a cloud organization for this user"""
createCloudOrganizationUrl: String
email: String
"""The display name of the user, if we have one"""
fullName: String
"""Globally unique identifier representing a concrete GraphQL ObjectType"""
id: ID!
"""A connection field type"""
organizations(
"""Returns the elements in the list that come after the specified cursor"""
after: String
"""Returns the elements in the list that come before the specified cursor"""
before: String
"""Returns the first n elements from the list."""
first: Int
"""Returns the last n elements from the list."""
last: Int
): CloudOrganizationConnection
"""Whether this user is the currently authenticated user"""
userIsViewer: Boolean!
}
"""
A code frame to display for a file, used when displaying code related to errors
"""
type CodeFrame {
"""Source of the code frame to display"""
codeBlock: String
"""The column of the error to display"""
column: Int
file: FileParts!
"""The line number of the code snippet to display"""
line: Int
}
enum CodeGenType {
component
e2e
scaffoldIntegration
}
enum CodeLanguageEnum {
js
ts
}
"""
The currently opened Cypress project, represented by a cypress.config.{ts|js} file
"""
type CurrentProject implements Node & ProjectLike {
"""The currently selected browser for the project"""
activeBrowser: Browser
"""The current branch of the project"""
branch: String
"""If the browser is open or not"""
browserStatus: BrowserStatus!
"""Browsers found that are compatible with Cypress"""
browsers: [Browser!]
"""The remote associated project from Cypress Dashboard"""
cloudProject: CloudProjectResult
"""List of all code generation candidates stories"""
codeGenCandidates(glob: String!): [FileParts]
"""Project configuration"""
config: JSON!
"""Config File, specified by the CLI or """
configFile: String
"""Config File Absolute Path"""
configFileAbsolutePath: String
"""The mode the interactive runner was launched in"""
currentTestingType: TestingTypeEnum
"""Default spec file name for spec creation"""
defaultSpecFileName: String
"""File extension to use based on if the project has typescript or not"""
fileExtensionToUse: FileExtensionEnum
"""Whether the project has a valid config file"""
hasValidConfigFile: Boolean
"""Relay style Node ID field for the CurrentProject field"""
id: ID!
"""Whether the user configured this project to use Component Testing"""
isCTConfigured: Boolean
"""True if the project is using the default spec pattern"""
isDefaultSpecPattern: Boolean!
"""Whether the user configured this project to use e2e Testing"""
isE2EConfigured: Boolean
"""Whether or not the full config is ready"""
isFullConfigReady: Boolean
"""Whether we are currently loading the configFile"""
isLoadingConfigFile: Boolean
"""Whether we are currently loading the setupNodeEvents"""
isLoadingNodeEvents: Boolean
"""Whether the project has Typescript"""
isUsingTypeScript: Boolean
"""Whether the project needs to be migrated before proceeding"""
needsLegacyConfigMigration: Boolean
packageManager: PackageManagerEnum!
"""Cached preferences for this project"""
preferences: ProjectPreferences
"""Used to associate project with Cypress dashboard"""
projectId: String
"""Absolute path to the project on the filesystem"""
projectRoot: String!
"""Project saved state"""
savedState: JSON
"""base64 encoded config used on the runner page"""
serveConfig: JSON!
"""A list of specs for the currently open testing type of a project"""
specs: [Spec!]!
title: String!
}
"""
A date string, such as 2007-12-03, compliant with the `full-date` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.
"""
scalar Date
"""
A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.
"""
scalar DateTime
enum DevRelaunchAction {
dismiss
trigger
}
"""State associated/helpful for local development of Cypress"""
type DevState {
"""
When we have edited server related files, we may want to relaunch the client.
"""
needsRelaunch: Boolean
"""For debugging, the current application state"""
state: JSON
}
"""Represents an editor on the local machine"""
type Editor {
"""Binary that opens the editor"""
binary: String
id: String!
"""name of editor"""
name: String!
}
enum ErrorTypeEnum {
AUTOMATION_SERVER_DISCONNECTED
BAD_POLICY_WARNING
BAD_POLICY_WARNING_TOOLTIP
BROWSER_NOT_FOUND_BY_NAME
BROWSER_NOT_FOUND_BY_PATH
BUNDLE_ERROR
CANNOT_CONNECT_BASE_URL
CANNOT_CONNECT_BASE_URL_RETRYING
CANNOT_CONNECT_BASE_URL_WARNING
CANNOT_CREATE_PROJECT_TOKEN
CANNOT_FETCH_PROJECT_TOKEN
CANNOT_RECORD_NO_PROJECT_ID
CANNOT_REMOVE_OLD_BROWSER_PROFILES
CANNOT_TRASH_ASSETS
CDP_COULD_NOT_CONNECT
CDP_COULD_NOT_RECONNECT
CDP_RETRYING_CONNECTION
CDP_VERSION_TOO_OLD
CHROME_WEB_SECURITY_NOT_SUPPORTED
COMPONENT_FOLDER_REMOVED
CONFIG_FILES_LANGUAGE_CONFLICT
CONFIG_FILE_DEV_SERVER_INVALID_RETURN
CONFIG_FILE_DEV_SERVER_IS_NOT_VALID
CONFIG_FILE_INVALID_DEV_START_EVENT
CONFIG_FILE_INVALID_ROOT_CONFIG
CONFIG_FILE_INVALID_ROOT_CONFIG_COMPONENT
CONFIG_FILE_INVALID_ROOT_CONFIG_E2E
CONFIG_FILE_INVALID_TESTING_TYPE_CONFIG_COMPONENT
CONFIG_FILE_INVALID_TESTING_TYPE_CONFIG_E2E
CONFIG_FILE_MIGRATION_NEEDED
CONFIG_FILE_NOT_FOUND
CONFIG_FILE_REQUIRE_ERROR
CONFIG_FILE_SETUP_NODE_EVENTS_ERROR
CONFIG_FILE_UNEXPECTED_ERROR
CONFIG_VALIDATION_ERROR
CONFIG_VALIDATION_MSG_ERROR
COULD_NOT_FIND_SYSTEM_NODE
COULD_NOT_PARSE_ARGUMENTS
DASHBOARD_ALREADY_COMPLETE
DASHBOARD_API_RESPONSE_FAILED_RETRYING
DASHBOARD_CANCEL_SKIPPED_SPEC
DASHBOARD_CANNOT_CREATE_RUN_OR_INSTANCE
DASHBOARD_CANNOT_PROCEED_IN_PARALLEL
DASHBOARD_CANNOT_PROCEED_IN_SERIAL
DASHBOARD_CANNOT_UPLOAD_RESULTS
DASHBOARD_GRAPHQL_ERROR
DASHBOARD_INVALID_RUN_REQUEST
DASHBOARD_PARALLEL_DISALLOWED
DASHBOARD_PARALLEL_GROUP_PARAMS_MISMATCH
DASHBOARD_PARALLEL_REQUIRED
DASHBOARD_PROJECT_NOT_FOUND
DASHBOARD_RECORD_KEY_NOT_VALID
DASHBOARD_RUN_GROUP_NAME_NOT_UNIQUE
DASHBOARD_STALE_RUN
DASHBOARD_UNKNOWN_CREATE_RUN_WARNING
DASHBOARD_UNKNOWN_INVALID_REQUEST
DEFAULT_SUPPORT_FILE_NOT_FOUND
DEPRECATED_BEFORE_BROWSER_LAUNCH_ARGS
DUPLICATE_TASK_KEY
ERROR_READING_FILE
ERROR_WRITING_FILE
EXPERIMENTAL_COMPONENT_TESTING_REMOVED
EXPERIMENTAL_NETWORK_STUBBING_REMOVED
EXPERIMENTAL_RUN_EVENTS_REMOVED
EXPERIMENTAL_SAMESITE_REMOVED
EXPERIMENTAL_SESSION_SUPPORT_REMOVED
EXPERIMENTAL_SHADOW_DOM_REMOVED
EXPERIMENTAL_STUDIO_REMOVED
EXTENSION_NOT_LOADED
FIREFOX_COULD_NOT_CONNECT
FIREFOX_GC_INTERVAL_REMOVED
FIREFOX_MARIONETTE_FAILURE
FIXTURE_NOT_FOUND
FOLDER_NOT_WRITABLE
FREE_PLAN_EXCEEDS_MONTHLY_PRIVATE_TESTS
FREE_PLAN_EXCEEDS_MONTHLY_TESTS
FREE_PLAN_IN_GRACE_PERIOD_EXCEEDS_MONTHLY_PRIVATE_TESTS
FREE_PLAN_IN_GRACE_PERIOD_EXCEEDS_MONTHLY_TESTS
FREE_PLAN_IN_GRACE_PERIOD_PARALLEL_FEATURE
INCOMPATIBLE_PLUGIN_RETRIES
INCORRECT_CI_BUILD_ID_USAGE
INDETERMINATE_CI_BUILD_ID
INTEGRATION_FOLDER_REMOVED
INVALID_CONFIG_OPTION
INVALID_CYPRESS_INTERNAL_ENV
INVALID_REPORTER_NAME
INVOKED_BINARY_OUTSIDE_NPM_MODULE
LEGACY_CONFIG_ERROR_DURING_MIGRATION
LEGACY_CONFIG_FILE
MIGRATION_ALREADY_OCURRED
MIGRATION_CYPRESS_NOT_FOUND
MIGRATION_MISMATCHED_CYPRESS_VERSIONS
MULTIPLE_SUPPORT_FILES_FOUND
NODE_VERSION_DEPRECATION_BUNDLED
NODE_VERSION_DEPRECATION_SYSTEM
NOT_LOGGED_IN
NO_DEFAULT_CONFIG_FILE_FOUND
NO_PROJECT_FOUND_AT_PROJECT_ROOT
NO_PROJECT_ID
NO_SPECS_FOUND
PAID_PLAN_EXCEEDS_MONTHLY_PRIVATE_TESTS
PARALLEL_FEATURE_NOT_AVAILABLE_IN_PLAN
PLAN_EXCEEDS_MONTHLY_TESTS
PLAN_IN_GRACE_PERIOD_RUN_GROUPING_FEATURE_USED
PLUGINS_FILE_CONFIG_OPTION_REMOVED
PLUGINS_RUN_EVENT_ERROR
PORT_IN_USE_LONG
PORT_IN_USE_SHORT
PROJECT_ID_AND_KEY_BUT_MISSING_RECORD_OPTION
RECORDING_FROM_FORK_PR
RECORD_KEY_MISSING
RECORD_PARAMS_WITHOUT_RECORDING
RENAMED_CONFIG_OPTION
RENDERER_CRASHED
RUN_GROUPING_FEATURE_NOT_AVAILABLE_IN_PLAN
SETUP_NODE_EVENTS_DO_NOT_SUPPORT_DEV_SERVER
SETUP_NODE_EVENTS_INVALID_EVENT_NAME_ERROR
SETUP_NODE_EVENTS_IS_NOT_FUNCTION
SUPPORT_FILE_NOT_FOUND
TESTS_DID_NOT_START_FAILED
TESTS_DID_NOT_START_RETRYING
TEST_FILES_RENAMED
UNEXPECTED_BEFORE_BROWSER_LAUNCH_PROPERTIES
UNEXPECTED_INTERNAL_ERROR
UNEXPECTED_MUTATION_ERROR
UNSUPPORTED_BROWSER_VERSION
VIDEO_POST_PROCESSING_FAILED
VIDEO_RECORDING_FAILED
}
"""Base error"""
type ErrorWrapper {
"""The code frame to display in relation to the error"""
codeFrame: CodeFrame
"""The markdown formatted content associated with the ErrorTypeEnum"""
errorMessage: String!
"""Name of the error class"""
errorName: String!
"""
The error stack of either the original error from the user or from where the internal Cypress error was created
"""
errorStack: String!
errorType: ErrorTypeEnum!
"""
Whether the error came from user code, can be used to determine whether to open a stack trace by default
"""
isUserCodeError: Boolean!
"""
Optional title of the error. Used to optionally display a title above the error
"""
title: String
}
input FileDetailsInput {
column: Int
"""
When we open a file we take a filePath, either relative to the project root, or absolute on disk
"""
filePath: String!
line: Int
}
enum FileExtensionEnum {
js
ts
}
"""Represents a file on the file system"""
type FileParts implements Node {
"""
Absolute path to file (e.g. /Users/jess/my-project/src/component/MySpec.test.tsx)
"""
absolute: String!
"""Full name of the file (e.g. MySpec.test.tsx)"""
baseName: String!
"""
If provided, used to specify the column of the file to open in openFileInIDE
"""
column: Int
"""The contents of the file"""
contents: String!
"""The file's extension"""
fileExtension: String!
"""The first part of the file, without extensions (e.g. MySpec)"""
fileName: String!
"""Relay style Node ID field for the FileParts field"""
id: ID!
"""
If provided, used to specify the line of the file to open in openFileInIDE
"""
line: Int
"""Full name of spec file (e.g. MySpec.test.tsx)"""
name: String!
"""Relative path to file (e.g. src/component/MySpec.test.tsx)"""
relative: String!
}
enum FrontendFrameworkEnum {
nextjs
nuxtjs
react
reactscripts
vue2
vue3
vueclivue2
vueclivue3
}
"""Error from generated spec"""
type GenerateSpecResponse {
"""The currently opened project"""
currentProject: CurrentProject
"""The file that have just been scaffolded or the fileName that errored"""
generatedSpecResult: GeneratedSpecResult
}
"""Error from generated spec"""
type GeneratedSpecError {
erroredCodegenCandidate: String!
fileName: String!
}
union GeneratedSpecResult = GeneratedSpecError | ScaffoldedFile
"""Git information about a spec file"""
type GitInfo {
"""Last person to change the file in git"""
author: String
"""last modified as a pretty string, eg 2 days ago"""
lastModifiedHumanReadable: String
"""last modified timestamp, eg 2021-09-14 13:43:19 +1000"""
lastModifiedTimestamp: String
"""short hash for latest commit"""
shortHash: String
"""status type - created or modified"""
statusType: GitInfoStatusType
"""subject for latest commit"""
subject: String
}
enum GitInfoStatusType {
created
modified
unmodified
}
"""A project which exists on the filesystem but has not been opened"""
type GlobalProject implements Node & ProjectLike {
"""Relay style Node ID field for the GlobalProject field"""
id: ID!
"""Used to associate project with Cypress dashboard"""
projectId: String
"""Absolute path to the project on the filesystem"""
projectRoot: String!
title: String!
}
"""
The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).
"""
scalar JSON
"""local settings on a device-by-device basis"""
type LocalSettings {
availableEditors: [Editor!]!
preferences: LocalSettingsPreferences!
}
"""local setting preferences"""
type LocalSettingsPreferences {
autoScrollingEnabled: Boolean
isSideNavigationOpen: Boolean
isSpecsListOpen: Boolean
preferredEditorBinary: String
proxyBypass: String
proxyServer: String
reporterWidth: Int
specListWidth: Int
}
type ManualMigration implements Node {
"""is the manual migration completed (all files are moved)"""
completed: Boolean!
"""files needing manual migration"""
files: [ManualMigrationFile!]!
"""Relay style Node ID field for the ManualMigration field"""
id: ID!
}
type ManualMigrationFile implements Node {
"""Relay style Node ID field for the ManualMigrationFile field"""
id: ID!
"""has the file been moved since opening the migration helper"""
moved: Boolean!
"""name of file to migrate"""
relative: String!
}
"""Contains all data related to the 9.X to 10.0 migration UI"""
type Migration {
"""the component folder path used to store components tests"""
componentFolder: String!
"""contents of the cypress.json file after conversion"""
configAfterCode: String!
"""contents of the cypress.json file before conversion"""
configBeforeCode: String!
"""the name of the config file after the migration"""
configFileNameAfter: String!
"""the name of the config file to be migrated"""
configFileNameBefore: String!
"""Steps filtered with the current context"""
filteredSteps: [MigrationStep!]!
"""whether component testing is set up in the migrated config or not"""
hasComponentTesting: Boolean!
"""whether the component folder is custom or not"""
hasCustomComponentFolder: Boolean!
"""whether the testFiles member is custom or not in component testing"""
hasCustomComponentTestFiles: Boolean!
"""whether the integration folder is custom or not"""
hasCustomIntegrationFolder: Boolean!
"""whether the testFiles member is custom or not in integration"""
hasCustomIntegrationTestFiles: Boolean!
"""the integration folder path used to store e2e tests"""
integrationFolder: String!
"""Whether the project has Typescript"""
isUsingTypeScript: Boolean
"""List of files needing manual conversion"""
manualFiles: ManualMigration
"""whether the pre extension info should be displayed"""
shouldMigratePreExtension: Boolean
"""All spec files after conversion"""
specFiles: [MigrationFile!]!
"""Support files needing automated rename"""
supportFiles: MigrationFile
}
type MigrationFile {
after: MigrationFileData!
before: MigrationFileData!
testingType: TestingTypeEnum!
}
type MigrationFileData implements Node {
"""Relay style Node ID field for the MigrationFileData field"""
id: ID!
parts: [MigrationFilePart!]!
relative: String!
}
type MigrationFilePart implements Node {
"""is this part a folder or extension that needs migration"""
group: String
"""should highlight in migration UI"""
highlight: Boolean!
"""Relay style Node ID field for the MigrationFilePart field"""
id: ID!
"""part of filename"""
text: String!
}
type MigrationRegexp {
"""regexp to use to rename existing specs in component"""
afterComponent: String!
"""regexp to use to rename existing specs in e2e"""
afterE2E: String!
"""regexp to identify existing specs in component"""
beforeComponent: String!
"""regexp to identify existing specs in e2e"""
beforeE2E: String!
}
"""Contains all data related to the 9.X to 10.0 migration UI"""
type MigrationStep implements Node {
"""Relay style Node ID field for the MigrationStep field"""
id: ID!
"""Index of the step in the list"""
index: Int!
"""Has the current step been completed"""
isCompleted: Boolean!
"""This is the current step"""
isCurrentStep: Boolean!
"""Identifier of the step"""
name: MigrationStepEnum!
}
enum MigrationStepEnum {
configFile
renameAuto
renameManual
renameSupport
setupComponent
}
type Mutation {
"""Internal use only, clears the cloud cache"""
_clearCloudCache: Boolean
"""Used internally to update the URQL cache in the CloudDataSource"""
_cloudCacheInvalidate(args: JSON): Boolean
"""Add project to projects array and cache it"""
addProject(
"""Whether to open the project when added"""
open: Boolean
path: String
): Query
"""Clears the currently active project"""
clearCurrentProject: Query
clearCurrentTestingType: Query
"""Close active browser"""
closeBrowser: Boolean
"""Create a project in the dashboard and return its object"""
cloudProjectCreate(ciProviders: [String!], name: String!, orgId: ID!, public: Boolean!): CloudProject
"""Request access to an organization from a projectId"""
cloudProjectRequestAccess(projectSlug: String!): CloudProjectResult
completeSetup: Query
"""add the passed text to the local clipboard"""
copyTextToClipboard(text: String!): Boolean
"""
Development only: Triggers or dismisses a prompted refresh by touching the file watched by our development scripts
"""
devRelaunch(action: DevRelaunchAction!): Boolean
"""Dismisses a warning displayed by the frontend"""
dismissWarning: Query
"""user has finished migration component specs - move to next step"""
finishedRenamingComponentSpecs: Query
"""Sets focus to the active browser window"""
focusActiveBrowserWindow: Boolean!
"""Generate spec from source"""
generateSpecFromSource(codeGenCandidate: String!, erroredCodegenCandidate: String, type: CodeGenType!): GenerateSpecResponse
internal_clearAllProjectPreferencesCache: Boolean
internal_clearLatestProjectCache: Boolean
internal_clearProjectPreferencesCache(projectTitle: String!): Boolean
"""Launches project from open_project global singleton"""
launchOpenProject(specPath: String): CurrentProject
"""Sets the active browser"""
launchpadSetBrowser(
"""ID of the browser that we want to set"""
id: ID!
): CurrentProject
"""Auth with Cypress Dashboard"""
login: Query
"""Log out of Cypress Dashboard"""
logout: Query
"""Check if a give spec file will match the project spec pattern"""
matchesSpecPattern(specFile: String!): Boolean!
"""While migrating to 10+ skip manual rename step"""
migrateCloseManualRenameWatcher: Boolean
"""Merges the component testing config in cypress.config.{js,ts}"""
migrateComponentTesting: Query
"""Transforms cypress.json file into cypress.config.js file"""
migrateConfigFile: Query
"""While migrating to 10+ renames files to match the new .cy pattern"""
migrateRenameSpecs(
"""specs to move - current name"""
after: [String!]
"""specs to move - current name"""
before: [String!]
skip: Boolean
): Query
"""When the user decides to skip specs rename"""
migrateRenameSpecsFolder: Query
"""While migrating to 10+ launch renaming of support file"""
migrateRenameSupport: Query
"""While migrating to 10+ skip manual rename step"""
migrateSkipManualRename: Query
"""Open a path in preferred IDE"""
openDirectoryInIDE(path: String!): Boolean
openExternal(includeGraphqlPort: Boolean, url: String!): Boolean
"""Open a file on specified line and column in preferred IDE"""
openFileInIDE(input: FileDetailsInput!): Boolean
"""Open a path in the local file explorer"""
openInFinder(path: String!): Boolean
"""Ping configured Base URL"""
pingBaseUrl: Query
"""show the launchpad windows"""
reconfigureProject: Boolean!
"""
Signal that we are explicitly refetching remote data and should not use the server cache
"""
refetchRemote: Query
"""Clears the cloudViewer cache to refresh the organizations"""
refreshOrganizations: Query
"""Remove project from projects array and cache"""
removeProject(path: String!): Query
"""Reset the Auth State"""
resetAuthState: Query!
"""Resets errors and attempts to reload the config"""
resetErrorsAndLoadConfig: Query
"""
Resets the latest version call to capture additional telemetry for the current user
"""
resetLatestVersionTelemetry: Boolean!
"""Reset the Wizard to the starting position"""
resetWizard: Boolean!
scaffoldIntegration: [ScaffoldedFile!]!
scaffoldTestingType: Query
setAndLoadCurrentTestingType(testingType: TestingTypeEnum!): Query
"""Set active project to run tests on"""
setCurrentProject(path: String!): Query
"""
Update local preferences (also known as appData). The payload, `value`, should be a `JSON.stringified()` object of the new values you'd like to persist. Example: `setPreferences (value: JSON.stringify({ lastOpened: Date.now() }))`
"""
setPreferences(value: String!): Query
"""Set the projectId field in the config file of the current project"""
setProjectIdInConfigFile(projectId: String!): Query
"""Save the projects preferences to cache"""
setProjectPreferences(testingType: TestingTypeEnum!): Query!
"""Save the prompt-shown state for this project"""
setPromptShown(slug: String!): Boolean
"""Set the selected testing type, and reconfigure the project"""
setTestingTypeAndReconfigureProject(isApp: Boolean!, testingType: TestingTypeEnum!): Query
"""Switch Testing type and relaunch browser"""
switchTestingTypeAndRelaunch(testingType: TestingTypeEnum!): Boolean
"""Updates the different fields of the wizard data store"""
wizardUpdate(input: WizardUpdateInput!): Wizard
}
"""Implements the Relay Node spec"""
interface Node {
"""Globally unique identifier representing a concrete GraphQL ObjectType"""
id: ID!
}
enum PackageManagerEnum {
npm
pnpm
yarn
}
"""
PageInfo cursor, as defined in https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo
"""
type PageInfo {
"""
The cursor corresponding to the last nodes in edges. Null if the connection is empty.
"""
endCursor: String
"""
Used to indicate whether more edges exist following the set defined by the clients arguments.
"""
hasNextPage: Boolean!
"""
Used to indicate whether more edges exist prior to the set defined by the clients arguments.
"""
hasPreviousPage: Boolean!
"""
The cursor corresponding to the first nodes in edges. Null if the connection is empty.
"""
startCursor: String
}
enum PluginsState {
error
initialized
initializing
uninitialized
}
"""Common base fields inherited by GlobalProject / CurrentProject"""
interface ProjectLike {
"""Used to associate project with Cypress dashboard"""
projectId: String
"""Absolute path to the project on the filesystem"""
projectRoot: String!
title: String!
}
"""Preferences specific to a project"""
type ProjectPreferences {
"""The preferred testing type to start in"""
testingType: String
}
type PushFragmentPayload {
data: JSON
fragment: JSON!
target: String!
}
"""The root "Query" type containing all entry fields for our querying"""
type Query {
"""The latest state of the auth process"""
authState: AuthState!
baseError: ErrorWrapper
cachedUser: CachedUser
"""Returns an object conforming to the Relay spec"""
cloudNode(
"""An ID for a Node conforming to the Relay spec"""
id: ID!
): Node
"""Returns a list of cloud nodes, by ID. Max 100 nodes per batch"""
cloudNodesByIds(
"""A list of IDs for a Node, conforming to the Relay spec"""
ids: [ID!]!
): [Node]
"""Lookup an individual project by the slug"""
cloudProjectBySlug(slug: String!): CloudProjectResult
"""Lookup a list of projects by their slug"""
cloudProjectsBySlugs(
"""A list of Project slugs"""
slugs: [String!]!
): [CloudProjectResult]
"""A user within the Cypress Cloud"""
cloudViewer: CloudUser
"""The currently opened project"""
currentProject: CurrentProject
"""The state of any info related to local development of the runner"""
dev: DevState!
"""Whether the app is in global mode or not"""
isInGlobalMode: Boolean!
"""local settings on a device-by-device basis"""
localSettings: LocalSettings!
"""Metadata about the migration, null if we aren't showing it"""
migration: Migration
node(id: ID!): Node
"""Whether the project was specified from the --project flag"""
projectRootFromCI: Boolean!
"""All known projects for the app"""
projects: [ProjectLike!]!
"""The files that have just been scaffolded"""
scaffoldedFiles: [ScaffoldedFile!]
"""Previous versions of cypress and their release date"""
versions: VersionData
"""A list of warnings"""
warnings: [ErrorWrapper!]!
"""Metadata about the wizard"""
wizard: Wizard!
}
"""A file that we just added to the filesystem during project setup"""
type ScaffoldedFile {
"""Info about the file we just scaffolded"""
description: String!
"""Info about the file"""
file: FileParts!
"""Info about the field"""
status: WizardConfigFileStatusEnum!
}
"""Represents a spec on the file system"""
type Spec implements Node {
"""
Absolute path to spec (e.g. /Users/jess/my-project/src/component/MySpec.test.tsx)
"""
absolute: String!
"""Full name of spec file (e.g. MySpec.test.tsx)"""
baseName: String!
"""The file extension (e.g. tsx, jsx)"""
fileExtension: String!
"""The first part of the file, without extensions (e.g. MySpec)"""
fileName: String!
"""Git information about the spec file"""
gitInfo: GitInfo
"""Relay style Node ID field for the Spec field"""
id: ID!
"""Full name of spec file (e.g. MySpec.test.tsx)"""
name: String!
"""Relative path to spec (e.g. src/component/MySpec.test.tsx)"""
relative: String!
"""
The spec file's extension, including "spec" pattern (e.g. .spec.tsx, -spec.tsx, -test.tsx)
"""
specFileExtension: String!
"""Type of spec (e.g. component | integration)"""
specType: SpecType!
}
enum SpecType {
component
integration
}
type Subscription {
"""Triggered when the auth state changes"""
authChange: Query
"""Triggered when the base error state changes"""
baseErrorChange: Query
"""Issued when the current branch of a project changes"""
branchChange: CurrentProject
"""Status of the currently opened browser"""
browserStatusChange: CurrentProject
"""
Triggered when there is a change to the info associated with the cloud project (org added, project added)
"""
cloudViewerChange: Query
"""Issued when cypress.config.js is re-executed due to a change"""
configChange: CurrentProject
"""Issued for internal development changes"""
devChange: DevState
"""
When the git info has refreshed for some or all of the specs, we fire this event with the specs updated
"""
gitInfoChange: [Spec]
"""
When we have resolved a section of a query, and want to update the local normalized cache, we "push" the fragment to the frontend to merge in the client side cache
"""
pushFragment: [PushFragmentPayload]
"""Issued when the watched specs for the project changes"""
specsChange: CurrentProject
}
enum SupportStatusEnum {
alpha
beta
full
}
"""The bundlers that we can use with Cypress"""
enum SupportedBundlers {
vite
webpack
}
enum TestingTypeEnum {
component
e2e
}
type TestingTypeInfo implements Node {
description: String!
"""Relay style Node ID field for the TestingTypeInfo field"""
id: ID!
title: String!
type: TestingTypeEnum!
}
"""Version of Cypress and release date"""
type Version {
"""unique id"""
id: String!
"""Release date as an iso8601 timestamp"""
released: String!
"""Version number (follows semantic versioning)"""
version: String!
}
"""Version of Cypress and release date"""
type VersionData {
"""current version of cypress you are using"""
current: Version!
"""latest version of cypress"""
latest: Version!
}
"""
The Wizard is a container for any state associated with initial onboarding to Cypress
"""
type Wizard {
"""All of the bundlers to choose from"""
allBundlers: [WizardBundler!]!
bundler: WizardBundler
framework: WizardFrontendFramework
"""All of the component testing frameworks to choose from"""
frameworks: [WizardFrontendFramework!]!
"""Command to install required command"""
installDependenciesCommand: String
"""
A list of packages to install, null if we have not chosen both a framework and bundler
"""
packagesToInstall: [WizardNpmPackage!]!
}
"""Wizard bundler"""
type WizardBundler implements Node {
"""Relay style Node ID field for the WizardBundler field"""
id: ID!
"""Whether this is the detected bundler"""
isDetected: Boolean!
"""Display name of the bundler"""
name: String!
"""The name of the framework"""
type: SupportedBundlers!
}
enum WizardConfigFileStatusEnum {
changes
error
skipped
valid
}
"""A frontend framework that we can setup within the app"""
type WizardFrontendFramework implements Node {
"""The category (framework, like react-scripts, or library, like react"""
category: String!
"""Relay style Node ID field for the WizardFrontendFramework field"""
id: ID!
"""Whether this is the detected framework"""
isDetected: Boolean!
"""Whether this is the selected framework in the wizard"""
isSelected: Boolean!
"""The display name of the framework"""
name: String!
"""Current support status of the framework"""
supportStatus: SupportStatusEnum!
"""All of the supported bundlers for this framework"""
supportedBundlers: [WizardBundler!]!
"""The unique identifier for a framework or library"""
type: FrontendFrameworkEnum!
}
"""Details about an NPM Package listed during the wizard install"""
type WizardNpmPackage implements Node {
"""Short description about the purpose of the package"""
description: String!
"""Version of the package the user has installed"""
detectedVersion: String
"""Relay style Node ID field for the WizardNpmPackage field"""
id: ID!
"""Minimum version of the package that Cypress works with"""
minVersion: String!
"""The package name that you would npm install"""
name: String!
"""Name of the package on npm"""
package: String!
"""
If the package is installed, does the version satisfy Cypress minimum requirements
"""
satisfied: Boolean!
}
input WizardUpdateInput {
bundler: SupportedBundlers
framework: FrontendFrameworkEnum
}