Использование типов Cypress Typescript - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь настроить TypeScript с помощью Cypress. Среда, кажется, настроена хорошо, но, похоже, есть проблема с извлечением определений типов из Cypress.

Для деконструкции параметров cy.wait('@graphql').then({request}) TypeScript жалуется, что вам нужно установить тип request парам. Похоже, что в Cypress не так много экспортов типов, но есть Cypress.WaitXHR и Cypress.ObjectLike, которые позволяют мне взломать мой путь к решению.

import Cypress from 'cypress';

type WaitXHR = Cypress.WaitXHR;
type ObjectLike = Cypress.ObjectLike;

describe('Admin Page', () => {
  it('Visits admin page', () => {
    cy.server()
      .route({
        method: 'POST',
        url: 'https://www.example.com/graphql',
      }).as('graphql');

    cy.visit('/');

    cy.wait('@graphql').then((xhr: WaitXHR) => {
      const { request }: { request: ObjectLike} = xhr;
      expect(request.body.operationName).to.equal('initalSetup');
    });
  });

Это решение, кажется, успокаивает TypeScript, но не очень приятно. Есть ли лучший способ сделать это?

...