cy-verify-downloads
TypeScript icon, indicating that this package has built-in type declarations

0.2.4 • Public • Published

Stand With Ukraine

cy-verify-downloads tests Total npm downloads

logo

Custom Cypress command to wait and verify that file is downloaded.

Installation

npm i -D cy-verify-downloads

Extend Cypress command

This package extends Cypress' cy command.

For Cypress v10+:

Add this line to your project's cypress/support/e2e.js:

require('cy-verify-downloads').addCustomCommand();

Then you need to add the following lines of code to your project's cypress.config.js:

const { verifyDownloadTasks } = require('cy-verify-downloads');

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      on('task', verifyDownloadTasks);
    },
  },
});

For Cucumber:

Additionally, you may need to install and add node polyfill in your support/e2e.js file:

  1. Install the polyfill module:
npm i -D esbuild-plugin-polyfill-node
  1. Import the following code in your support/e2e.js file:
const { polyfillNode } = require('esbuild-plugin-polyfill-node');
  1. Add the following code in your plugins property:
module.exports = defineConfig({
  e2e: {
    async setupNodeEvents(on, config) {
      const bundler = createBundler({
        plugins: [polyfillNode({ polyfills: { crypto: true } }), createEsbuildPlugin(config)],
      });
    }
  }
});

For Cypress v9:

So, you need to add this line to your project's cypress/support/commands.js:

require('cy-verify-downloads').addCustomCommand();

And add the following lines to your project's cypress/plugins/index.js:

const { verifyDownloadTasks } = require('cy-verify-downloads');

module.exports = (on, config) => {
  on('task', verifyDownloadTasks)
}

Usage

Then, in your test, you can use it like this:

cy.verifyDownload('picture.png');

// verify download by file extension or partial filename
cy.verifyDownload('.png', { contains: true });
cy.verifyDownload('pic', { contains: true });

// or increase timeout
cy.verifyDownload('archive.zip', { timeout: 25000 });

// or increase timeout and interval pooling
cy.verifyDownload('archive.zip', { timeout: 25000, interval: 600 });

Types

Autocompletion

To enable IntelliSense information and autocomplete you have to include types in the tsconfig.json file:

{
  "compilerOptions": {
    "types": ["cypress", "cy-verify-downloads"]
  }
}

Author

Yevhen Laichenkov elaichenkov@gmail.com

License

MIT

Package Sidebar

Install

npm i cy-verify-downloads

Weekly Downloads

164,020

Version

0.2.4

License

MIT

Unpacked Size

8.72 kB

Total Files

5

Last publish

Collaborators

  • elaichenkov