// Intellisense for custom Commands: https://github.com/cypress-io/cypress-example-todomvc#cypress-intellisense
declare namespace Cypress {
  interface Chainable<Subject> {
    /**
     * Login via API call to the GraphQL endpoint, without calling the frontend. Faster than the other login.
     * @param   username
     * @param   password
     * @example
     * cy.apolloLogin('ross.geller', 'test')
     */
    apolloLogin(username: string, password: string): Chainable<any>

    /**
     * Selects an element based on the `data-cy=xxx` attribute
     * @param selector - The value of the data-cy attribute to select
     * @example
     * cy.getByDataCy('my-new-button')
     */
    getByDataCy(selector: string): Chainable<any>

    selectClass(schoolClass: string): void

    login(username: string, password: string, visitLogin?: boolean): void

    fakeLogin(username: string, password: string): void

    isSubmissionReadOnly(myText: string): void

    openSidebar(): void

    setup(): void
  }
}
