{"_id":"@commercelayer/cypress-vcr","_rev":"8-11ed9baf79ac60b7db89027f8e3a4b0b","name":"@commercelayer/cypress-vcr","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@commercelayer/cypress-vcr","description":"Record your test suite's HTTP interactions and replay them during future test runs for fast","version":"1.0.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","version:patch":"npm version patch","version:minor":"npm version minor","version:major":"npm version major","publish:patch":"npm run prepare && npm run version:patch && git push --follow-tags && npm publish --access public","publish:minor":"npm run prepare && npm run version:minor && git push --follow-tags && npm publish --access public","publish:major":"npm run prepare && npm run version:major && git push --follow-tags && npm publish --access public"},"peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":false,"singleQuote":true,"trailingComma":"es5"},"author":{"name":"Alessandro Casazza"},"module":"dist/new.esm.js","devDependencies":{"cypress":"^4.4.0","husky":"^4.2.5","tsdx":"^0.13.2","tslib":"^1.11.1","typescript":"^3.8.3"},"dependencies":{"lodash":"^4.17.15"},"gitHead":"31b3cc2aae9fc1ba5506802ab374ced90eb58822","_id":"@commercelayer/cypress-vcr@1.0.0","_nodeVersion":"13.13.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-7HUDIBawSQKw1aEJ8Lwq7Ie/NL4rp8DIL/R92EYo5sE+5KPitEY1PKsZpHOx6WbbSCMioDY7/XQOK2nr3yblIg==","shasum":"95947de98ef580ea00e479f54b08ce161e0efcdb","tarball":"https://registry.npmjs.org/@commercelayer/cypress-vcr/-/cypress-vcr-1.0.0.tgz","fileCount":12,"unpackedSize":44469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeorAICRA9TVsSAnZWagAAmtUP/RDmPJaDdqjFU9X7LfnV\nTNKaNP/v8NpKvOyOZ6QgcfFaB9tUJvqzv6ivzKZlMbe6w8g0ba7zoIlD8sIk\nyhOIbboZMQmcrb2jrMe1Ic82/PPbeRql499WitbSrRhCyzR3CmTOpMh/KMKW\ncb2LCGOcRVLVvwMhsAf5NmsoGU5VGMw2/O0Py1LKnxKKtpsazRXwG9STeYgB\nHdZGginbXsAXXdflDKZaIOd/l87C1yCOp4RkoFNQ1zKGe/btTrInw23xcJhK\n9DrPHF+5uta5dVhgL2Q88SI3BEoC5ykUIzdqhgBg7RSNfnAEMKrQrXmtF+DK\n7OaKNZAr9KpnsKs1a50h24SGNSIfBtwlI8WYhQ6GNLD8jjlu3V8VC3C5Xlyj\n/o22ONKVOvEmf59puYIyJjNdj/6zvY3116Zl7uXCWXIomD1NiIHxNQ+cAvIo\n5jXL/onw4BSMUOfy4x6elrtCp19glSuUeP+wnUVkcmKztrPaveG2+yyK+8RH\n+cBhDLAXLW6WIfyOlWSNje7GOzFBfD8J0E4WzcptZMo32iAgTzjsCOA+vIzB\n4AihvESeTJV2D9gpYhEh3IejxREsafhXwJ8Xk3Hok6r0Kpu1+evIul5BHHm/\nBiyxnfH851qQ+f6ouu4/0ONCuStzTx63weXrZvmDACJ8aqJtSLdGDkYjWRZZ\nE4SA\r\n=KGTM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGzmoEY57MJCunNgTvJUaORNLDboFG1WBHWXEar6ejsfAiEA8hb6Va2eR+SCNjQMh/zbnY1KbB8CmAe1h1VZedXKX0A="}]},"maintainers":[{"name":"acasazza","email":"alessandro@commercelayer.io"},{"name":"drpierlu","email":"pierluigi@commercelayer.io"},{"name":"fconforti","email":"filippo@commercelayer.io"}],"_npmUser":{"name":"acasazza","email":"alessandro@commercelayer.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cypress-vcr_1.0.0_1587720200259_0.6746657408364294"},"_hasShrinkwrap":false},"1.0.1":{"name":"@commercelayer/cypress-vcr","description":"Record your test suite's HTTP interactions and replay them during future test runs for fast","version":"1.0.1","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"keywords":["cypress","vcr","stubbing"],"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","version:patch":"npm version patch","version:minor":"npm version minor","version:major":"npm version major","publish:patch":"npm run prepare && npm run version:patch && git push --follow-tags && npm publish --access public","publish:minor":"npm run prepare && npm run version:minor && git push --follow-tags && npm publish --access public","publish:major":"npm run prepare && npm run version:major && git push --follow-tags && npm publish --access public"},"bugs":{"url":"https://github.com/commercelayer/cypress-vcr/issues"},"homepage":"https://github.com/commercelayer/cypress-vcr#readme","peerDependencies":{},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":false,"singleQuote":true,"trailingComma":"es5"},"author":{"name":"Alessandro Casazza"},"module":"dist/cypress-vcr.esm.js","devDependencies":{"cypress":"^4.5.0","husky":"^4.2.5","tsdx":"^0.13.2","tslib":"^1.11.1","typescript":"^3.8.3"},"dependencies":{"lodash":"^4.17.15"},"gitHead":"7f77400ae9eeeb360f9cc43f03a0356bf90fd2b5","_id":"@commercelayer/cypress-vcr@1.0.1","_nodeVersion":"13.13.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-4G8AAKGKaTvUYMfzngXuxUJFTp8lp44LErPSyOvlIj8fTOnHn+UdOgPNPo+1dr1y9JU/UCsHjnVKnmnA78v/6Q==","shasum":"59c08e7b2592402ca966f95768a55eab493b48fe","tarball":"https://registry.npmjs.org/@commercelayer/cypress-vcr/-/cypress-vcr-1.0.1.tgz","fileCount":11,"unpackedSize":40776,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqYNmCRA9TVsSAnZWagAAk4QP/At7GPJvE+WxiUzV9hB/\nRKBdRYBY32sxclk/6oT1ZnYhRRpD2O29nwaptRLTViz5IedWWAWR9FYe6TrZ\nwzmNIXx1OggEeyOZUV9iphcwgaqMPnaGijQiFDAEO3zVwwH8fUOgVuk78EM+\nPUCa8Pna9keV4pT6Vh/7F0WXLro2b1HD7aZjJr5iOSobA0iIRicur/CFpYRo\nEWsuqiHAn/7iDz5ut/5XfcsenuVMN8C8o6+MoXZ6Tj6//BNZ02YS8gbjqkUe\nts68xMf4uqthqP5Ea7auJKFZYrQz4/p5OeIfssS30dXAF0RQvdkboXjpzurl\nZyBjtcZ+c+GTzQ4wJpB+4G/vbDrcacl2Zpr3KQyJBl+lAM0rzRzMWXpU308/\neWPfjnStHFf6FMr4sJCcyC8U+SqbQR2r/nyMLLjfPCfLPo4zEycVC6srWu2A\ni5ApAyNwIda4iA6QyvoL14KWzFzaUmUtOFjHjBDcZchq0+2QFrvMLX8xei9d\nTDisZw6FHBBIzUzQ0NadxQKLfuTfTX/To/CqUUVVDiNpWu5Wixs7/umyLCzn\nlR+CGlUMxybYsW3OHvf7G/f4L1g1u6ANK6LM82m0Y6OK42486blI324cQ7jo\nG4zk3KxmpGCneweEGHg6VdyJyq36gXT68wNX63BU8SxxErABFTu4AtKBt/Xd\nr58i\r\n=sGwz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2Czm2Lz+1Kpn1vWssEFVTc8h8IZXezXfCXsVkRAzJHQIhAPmuShg/Q7uxboT9PJenuFT9IVHDhBUF6AZT40gAynOR"}]},"maintainers":[{"name":"acasazza","email":"alessandro@commercelayer.io"},{"name":"drpierlu","email":"pierluigi@commercelayer.io"},{"name":"fconforti","email":"filippo@commercelayer.io"}],"_npmUser":{"name":"acasazza","email":"alessandro@commercelayer.io"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cypress-vcr_1.0.1_1588167525707_0.2799943152439932"},"_hasShrinkwrap":false},"1.1.0":{"name":"@commercelayer/cypress-vcr","description":"Record your test suite's HTTP interactions and replay them during future test runs for fast","version":"1.1.0","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","engines":{"node":">=10"},"keywords":["cypress","vcr","stubbing"],"scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","version:patch":"npm version patch","version:minor":"npm version minor","version:major":"npm version major","publish:patch":"npm run prepare && npm run version:patch && git push --follow-tags && npm publish --access public","publish:minor":"npm run prepare && npm run version:minor && git push --follow-tags && npm publish --access public","publish:major":"npm run prepare && npm run version:major && git push --follow-tags && npm publish --access public"},"bugs":{"url":"https://github.com/commercelayer/cypress-vcr/issues"},"homepage":"https://github.com/commercelayer/cypress-vcr#readme","peerDependencies":{"cypress":"^6.x"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":80,"semi":false,"singleQuote":true,"trailingComma":"es5"},"author":{"name":"Alessandro Casazza"},"module":"dist/cypress-vcr.esm.js","devDependencies":{"@types/lodash":"^4.14.165","cypress":"^6.1.0","husky":"^4.3.6","tsdx":"^0.14.1","tslib":"^2.0.3","typescript":"^4.1.3"},"dependencies":{"lodash":"^4.17.20"},"gitHead":"5b2f2ec89186f987bb97b6b3ca0b13d13cbf49c6","_id":"@commercelayer/cypress-vcr@1.1.0","_nodeVersion":"15.4.0","_npmVersion":"7.0.15","dist":{"integrity":"sha512-n6OpdsnBZUESsH5kmVrj1vTzFunCYInA0xRxRLM/RUK9NdY4ncuWryJGTeABZDWdPmApgLsmPQ5yeY4NxiuLbw==","shasum":"435583d5cd79c3375b49d441778aec399ffca44a","tarball":"https://registry.npmjs.org/@commercelayer/cypress-vcr/-/cypress-vcr-1.1.0.tgz","fileCount":11,"unpackedSize":40314,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf3M+ACRA9TVsSAnZWagAACPgP/Ryo9kR4FPKy2Icl3IiP\n7D/WfaE9sIfWVA9YtVzWwTzAdPIFXiZTmp9LuSItAVzd9RDMjEosLehmzg7U\nfpxljKeZBDSzmlGM+QNY8s3PlGqW9g8v/AsTOR8wYjZk8Oo/o6iZ8neVzofj\n678pxKFtaqgMELL8WENrApsP1EHkafwJwt7NbP7+gYnAx4lhFKkD+9sF71qh\nljH5+tsi99aOnjEnsr4RXnd60ZyhasakWsxgrKupZiVW07b8Ed/UpFHVbdGz\nZe291FS/F0bMRFoEUlaJJcz8nGOwBcUS1wSYTPvxpjfMwyFJ6lmfsgghP+Yy\n5C/6WxrdztsdckjDFhfqLLPQlr8USopfIF1BsZcsL/ll4NzY9WVGtOtkSyqA\nnV65kZy9Pi1PioI/fOlvaNgkbvKrE+h98vuspgfE4jPcEHp7A2CIz9nqmyoV\nzJpN7dIPBaepG733CFZHJQVSJggUR/7P3kALUXoggaX+g3pHjL/tFEkfYmZB\nD3xUO76CIsfl5fWSI//nZ6RiSHFSxJJJfQh2icfRQQWDaN8AgI04zFNZjV/n\nLn9DPKF2bHNd/R/h39zzyjsEc/Ady3ztPSonpPIuZAZRJpq6fwrqj43gHege\nSDekC7sNmz3WLZsaDW4p6Xm3wu0fsV4zFxfT2/Vh5O612gzwI8WuVu7SNFrz\nVC2/\r\n=pryr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDz5lEY2BHSz/dUwIp6oyRw58W5wzRIvzIojweNva9CCAIgQHfJ63E+M4eR+ZW8Q0qaSZWZufovE3jyh1zTMQ+HDTc="}]},"_npmUser":{"name":"acasazza","email":"alessandro@commercelayer.io"},"directories":{},"maintainers":[{"name":"fconforti","email":"filippo@commercelayer.io"},{"name":"drpierlu","email":"pierluigi@commercelayer.io"},{"name":"acasazza","email":"alessandro@commercelayer.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/cypress-vcr_1.1.0_1608306559916_0.6328531807884945"},"_hasShrinkwrap":false}},"time":{"created":"2020-04-24T09:23:20.033Z","1.0.0":"2020-04-24T09:23:20.421Z","modified":"2022-12-20T14:32:07.622Z","1.0.1":"2020-04-29T13:38:45.805Z","1.1.0":"2020-12-18T15:49:20.061Z"},"maintainers":[{"email":"subscriptions@commercelayer.io","name":"commercelayer.io"},{"email":"pierluigi@commercelayer.io","name":"drpierlu"}],"description":"Record your test suite's HTTP interactions and replay them during future test runs for fast","author":{"name":"Alessandro Casazza"},"license":"MIT","readme":"# cypress-vcr\n\nRecord your test suite's HTTP interactions and replay them during future test runs for fast.\n\n## Getting Started\n\nTo get started with `cypress-vcr` you need to install it.\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Stubbing](#stubbing)\n- [Typescript](#typescript)\n\n## Installation\n\n```text\n  // NPM\n  npm install -D @commercelayer/cypress-vcr\n\n  // YARN\n  yarn add -D @commercelayer/cypress-vcr\n```\n\n## Usage\n\n- The first step is to import the plugin in your `cypress/support/command.js` as follows:\n\n```text\nimport '@commercelayer/cypress-vcr'\n```\n\n- The second step is to add the command to register your routes as follows:\n\n> [!TIP]\n>\n> [Environment Variables](https://docs.cypress.io/guides/guides/environment-variables.html#Setting) can be useful!\n\n```text\nbefore(() => {\n  // or beforeEach method\n\n  cy.server()\n  cy.setRoutes({\n    endpoint: 'your-endpoint',\n    routes: [\n      {\n        method: \"POST\",\n        url: \"/beetles\",\n        alias: \"getBeetles\"\n      }\n    ],\n    record: Cypress.env('RECORD'), // @default false\n    filename: 'requests' // @default: 'requests' for reading the data from your cassette\n  })\n  cy.visit('/')\n\n})\n```\n\n- The third step is to add the command to save all data from your requests as follows:\n\n```text\nafter(() => {\n  if (Cypress.env('RECORD')) {\n    cy.saveRequests('your-filename') // @default: 'requests'\n  }\n})\n```\n\nThat's it. Now you can launch your tests. You can find your data requests in your `cypress/fixtures` folder.\n\n## Stubbing\n\n[Stubbing](https://docs.cypress.io/api/commands/route.html#With-Stubbing) made automatically, but there may be multiple requests to the same route.\nFor each request, the plugin set an id (your-alias + n) that you can require to update the response as follows:\n\n```text\ncy.get('#search').type('Weevil')\n\n// wait for the first response to finish\ncy.wait('@getBeetles')\n\n// the results should be empty because we\n// responded with an empty array first\ncy.get('#beetle-results').should('be.empty')\n\n// now re-define the /beetles response with the second response\nif (!Cypress.env('RECORD')) {\n  cy.newStubData('@getBeetles1', 'your-filename') // @default: 'requests'\n  // or cy.newStubData(['@getBeetles1', '@other-request'], 'other-filename')\n}\n\ncy.get('#search').type('Geotrupidae')\n\n// now when we wait for 'getBeetles' again, Cypress will\n// automatically know to wait for the 2nd response\ncy.wait('@getBeetles')\n\n// we responded with 1 beetle item so now we should\n// have one result\ncy.get('#beetle-results').should('have.length', 1)\n\n```\n\n## Typescript\n\n`cypress-vcr` is written in Typescript. You can add its types to your project as follows:\n\n```text\n// in cypress/support/index.d.ts\n// load type definitions that come with Cypress module\n/// <reference types=\"cypress\" />\n\nimport {\n  SetRoutes,\n  NewStubData,\n  SaveRequests,\n} from '@commercelayer/cypress-vcr'\n\ndeclare namespace Cypress {\n  interface Chainable {\n    setRoutes: SetRoutes\n    newStubData: NewStubData\n    saveRequests: SaveRequests\n  }\n}\n```\n\nThat's it. More details on [Cypress](https://docs.cypress.io/guides/tooling/typescript-support.html#Types-for-custom-commands)\n\n## License\n\nThis repository is published under the MIT license.\n","readmeFilename":"README.md","homepage":"https://github.com/commercelayer/cypress-vcr#readme","keywords":["cypress","vcr","stubbing"],"bugs":{"url":"https://github.com/commercelayer/cypress-vcr/issues"}}