Giter Club home page Giter Club logo

Comments (5)

Dassderdie avatar Dassderdie commented on August 17, 2024 6

Correct.

In addition i also added the typings from cypress-recurse and added jsdoc annotations for the default values.

support/index.ts

import type { RecurseDefaults } from 'cypress-recurse';

/// <reference types="cypress" />
declare global {
    namespace Cypress {
        interface Chainable {
            /**
             * @param name The name of the snapshots that will be generated
             * @param testThreshold @default 0 A number between 0 and 1 that represents the allowed percentage of pixels that can be different between the two snapshots
             * @param retryOptions @default { limit: 0, timeout: Cypress.config('defaultCommandTimeout'), delay: Cypress.config('defaultCommandTimeout') / 5 }
             * @example cy.compareSnapshot('empty-canvas', 0.1)
             */
            compareSnapshot(
                name: string,
                testThreshold?: number,
                retryOptions?: typeof RecurseDefaults
            ): Chainable<Element>;
        }
    }
}

from cypress-image-diff.

Dassderdie avatar Dassderdie commented on August 17, 2024 2

If anyone else stumbles over this issue:

support/index.ts

import './commands';

/// <reference types="cypress" />
declare global {
    namespace Cypress {
        interface Chainable {
            /**
             * @param name The name of the snapshots that will be generated
             * @param testThreshold A number between 0 and 1 that represents the allowed percentage of pixels that can be different between the two snapshots
             * @example cy.compareSnapshot('empty-canvas', 0.1)
             */
            compareSnapshot(
                name: string,
                testThreshold: number,
                retryOptions?: {
                    /**
                     * The maximum number of retries
                     */
                    limit: number;
                    /**
                     * Delay before next iteration in ms
                     */
                    delay: number;
                }
            ): Chainable<Element>;
        }
    }
}

from cypress-image-diff.

yuqianma avatar yuqianma commented on August 17, 2024

@Dassderdie The code comment is great!

testThreshold should be optional?

from cypress-image-diff.

PippoRaimondi avatar PippoRaimondi commented on August 17, 2024

@Dassderdie if you don't mind creating a PR for this... we should have typescript support and I will work on it if no one else finds the time. Thanks a lot for sharing

from cypress-image-diff.

zhex900 avatar zhex900 commented on August 17, 2024

My TS is still complaining. Can you see what I did wrong?

//  cypress/tsconfig.json
{
  "compilerOptions": {
    "noEmit": true,
    "types": [
      "cypress"
    ]
  },
  "include": [
    "**/*.ts",
    "../node_modules/cypress"
  ]
}

//test.spect.ts
  it('displays two todo items by default', () => {
    cy.get('#svgLayout').should('be.visible');
   //TS2339: Property 'compareSnapshot' does not exist on type 'Chainable  >'.
    cy.get('#svgLayout').compareSnapshot('search-bar-element');
  });
//support/index.ts
/// <reference types="cypress" />

import './commands';

require('cypress-terminal-report/src/installLogsCollector')();
import type { RecurseDefaults } from 'cypress-recurse';

declare global {
  namespace Cypress {
    interface Chainable {
      /**
       * @param name The name of the snapshots that will be generated
       * @param testThreshold @default 0 A number between 0 and 1 that represents the allowed percentage of pixels that can be different between the two snapshots
       * @param retryOptions @default { limit: 0, timeout: Cypress.config('defaultCommandTimeout'), delay: Cypress.config('defaultCommandTimeout') / 5 }
       * @example cy.compareSnapshot('empty-canvas', 0.1)
       */
      compareSnapshot(
        name: string,
        testThreshold?: number,
        retryOptions?: typeof RecurseDefaults,
      ): Chainable<Element>;
    }
  }
}
//commands.ts
import '@testing-library/cypress/add-commands';

import compareSnapshotCommand from 'cypress-image-diff-js/dist/command';

compareSnapshotCommand();

from cypress-image-diff.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.