最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Custom cypress commands is not assignable to parameter of type 'keyof Chainable<any> - Stack

programmeradmin0浏览0评论

In a .ts file I create a test to try and access a custom created mand from mand.js, createInbox function is underlined with red with the following message : Property 'createInbox' does not exist on type 'cy & EventEmitter

it.only('dsdsds', () => {
    cy.createInbox().then((inbox) => { 
      console.log(inbox);
      // { id: '...', emailAddress: '...' }
    });
  })

My mand.js file look like this

const { MailSlurp } = require("mailslurp-client");
const mailslurp = new MailSlurp(Cypress.env("mailSlurpApiKey"));

Cypress.Commands.add("createInbox", () => {
  return mailslurp.createInbox();
});

Cypress.Commands.add("waitForLatestEmail", (inboxId) => {
  return mailslurp.waitForLatestEmail(inboxId);
});

I understand that I have to rename mand.js to ts, however when I do that all custom mands is underlined with red with the following error : Argument of type '"waitForLatestEmail"' is not assignable to parameter of type 'keyof Chainable

How could I fix this?

In a .ts file I create a test to try and access a custom created mand from mand.js, createInbox function is underlined with red with the following message : Property 'createInbox' does not exist on type 'cy & EventEmitter

it.only('dsdsds', () => {
    cy.createInbox().then((inbox) => { 
      console.log(inbox);
      // { id: '...', emailAddress: '...' }
    });
  })

My mand.js file look like this

const { MailSlurp } = require("mailslurp-client");
const mailslurp = new MailSlurp(Cypress.env("mailSlurpApiKey"));

Cypress.Commands.add("createInbox", () => {
  return mailslurp.createInbox();
});

Cypress.Commands.add("waitForLatestEmail", (inboxId) => {
  return mailslurp.waitForLatestEmail(inboxId);
});

I understand that I have to rename mand.js to ts, however when I do that all custom mands is underlined with red with the following error : Argument of type '"waitForLatestEmail"' is not assignable to parameter of type 'keyof Chainable

How could I fix this?

Share Improve this question edited May 13, 2022 at 10:15 VincenzoC 31.5k12 gold badges100 silver badges121 bronze badges asked May 13, 2022 at 9:27 Artjom ProzorovArtjom Prozorov 3274 silver badges10 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 4

I had this problem aswell! My solution: I had my *.d.ts files located inside the cypress/support folder, right next to the *.ts files with all the custom mands. Moving those outside(!) the "support"-folder and into another one called "definitionFiles" (for example) worked beautifully!

Solved by adding custom chainable interface to support folder

declare namespace Cypress {
  interface Chainable {
    createInbox(): Chainable<any>;
    waitForLatestEmail(inboxId: number): Chainable<any>;
  }
}

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论