0
0
Cypresstesting~5 mins

TypeScript support for custom commands in Cypress - Cheat Sheet & Quick Revision

Choose your learning style9 modes available
Recall & Review
beginner
What is the purpose of adding TypeScript support for custom commands in Cypress?
It helps Cypress recognize the new commands with proper types, enabling code completion and type checking, which reduces errors and improves developer experience.
Click to reveal answer
beginner
Where do you declare the types for your custom Cypress commands?
You declare them in a TypeScript declaration file, usually named cypress/support/index.d.ts or cypress/support/commands.d.ts, by extending the Cypress.Chainable interface.
Click to reveal answer
intermediate
How do you extend Cypress commands with TypeScript to add a custom command named login?
You add a declaration like declare namespace Cypress { interface Chainable { login(email: string, password: string): Chainable<void>; } } in a declaration file, then implement Cypress.Commands.add('login', (email, password) => { ... }) in your commands file.
Click to reveal answer
intermediate
Why is it important to declare custom Cypress command types in the support declaration file?
Declaring them there ensures TypeScript automatically knows about the custom commands' types when writing tests, so you get autocomplete and error checking for those commands.
Click to reveal answer
beginner
What happens if you use a custom Cypress command without adding TypeScript support?
TypeScript will not recognize the command, causing errors or missing autocomplete, which can lead to mistakes or slower development.
Click to reveal answer
Where do you extend the Cypress command types for custom commands in TypeScript?
AIn a Cypress configuration JSON file
BIn a TypeScript declaration file (<code>.d.ts</code>)
CIn a <code>.ts</code> test file
DIn the package.json file
What interface do you extend to add custom commands in Cypress TypeScript support?
ACypress.Chainable
BCypress.CommandsInterface
CCypress.CustomCommands
DCypress.Commands
Which of the following is the correct way to add a custom command implementation in Cypress?
ACypress.Commands.add('myCommand', () => {})
BCypress.Commands.create('myCommand', () => {})
CCypress.addCommand('myCommand', () => {})
DCypress.createCommand('myCommand', () => {})
What benefit does TypeScript support for custom commands provide?
AFaster test execution
BBetter UI design
CType checking and autocomplete for custom commands
DAutomatic test retries
If you forget to declare your custom command types, what will happen in your TypeScript Cypress tests?
ATests will run faster
BTests will fail to run
CNothing, it works fine
DYou will get type errors or no autocomplete for the custom commands
Explain how to add TypeScript support for a custom Cypress command named 'login'.
Think about declaration files and interface extension.
You got /4 concepts.
    Why is it important to extend Cypress.Chainable interface when adding custom commands in TypeScript?
    Consider how TypeScript understands new methods.
    You got /4 concepts.