1.0.5 • Published 6 years ago
cypress-protobuf v1.0.5
Cypress Protocol Buffers
Encode a fixture with Protocol Buffers
Use this plugin to encode a Cypress fixture with Protocol Buffers.
Installation
npm i -D cypress-protobuf
# or
yarn add -D cypress-protobufthen open your cypress/plugins/index.js file and register a new task
module.exports = on => {
  on("task", {
    protobufEncode: require("cypress-protobuf"),
  });
};How to use it
To encode with Protocol Buffers a fixture
cy.fixture("FIXTURE_NAME.json+")
  .then(json => {
    cy.task("protobufEncode", {
      fixtureBody: json, // the fixture body
      message: "MESSAGE_NAME", // the protobuf message to use
      protoFilePath: "./public/example.proto", // the path (starting from your project directory) to the .profo file
    })
  .then(encodedJson => {
    // 🎉 `encodedJson` contains the encoded fixture
    cy.route({
      headers: {
        "content-type": "application/octet-stream"
      },
      response: encodedJson,
      url: 'API_URL'
    }).as("FIXTURE_NAME");
  });
});and in your test you will wait for the request as usual
cy.wait("@YOUR_FIXTURE_NAME");Take a look at the example test source code.
Tips
- the plugin saves the last 
protoFilePathso you can avoid to pass it every time. You can even set it at the beginning of your test suite 
before(() => {
  cy.task("protobufEncode", {
    protoFilePath: "./public/escrow/ui.proto"
  });
});Contributors
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!