jest-environment-ibm-apiconnect

    1.1.0 • Public • Published

    jest-environment-ibm-apiconnect

    npm version

    Overview

    Mock the DataPower gatewayscript environment created by API Connect with Jest.

    Setup

    npm install --save-dev jest-environment-ibm-apiconnect
    

    jest.config.js:

    module.exports = {
        testEnvironment: "ibm-apiconnect",
        testEnvironmentOptions: {
          context: {
              "custom.variable.x": "Hello World" // This variable could be retreived by `apim.getvariable('custom.variable.x')`
          }
        },
        // Automatically clear mock calls and instances between every test
        clearMocks: true,
    };

    And in your test files:

    ...
     
    describe('my policy to test', () => {
     
      let apicMock;
     
      beforeEach(() => {
        apicMock = mockAPIConnect(jest);
      });
     
      ...
    });

    Modules that are being mocked

    • apim
    • header-metadata (hm)
    • jose
    • jwt
    • service-metadata (sm)
    • system-metadata (sysm)
    • transform
    • urlopen

    Global modules:

    • session
    • XML

    API

    Function Description
    apicMock.apim.addINPUT(json, buffer) Pushes an input for apim stack to return when called by apim.readInputAsJSON/Buffer (LIFO)
    apicMock.apim.setPolicyProperty(key, value) Sets a policy property before running a policy
    apicMock.apim.setvariable(key, value) Sets a context variable *
    apicMock.hm.setCurrentHeader(key, value) Sets a header to current *
    apicMock.hm.getCurrentHeader(key) Gets the current header by key *
    apicMock.hm.setResponseHeader(key, value) Sets a header to response *
    apicMock.hm.getResponseHeader(key) Gets the response header by key *
    apicMock.sm.serviceMetadata (Object) Can be set with values to be read by code (Only dotted notation is supported)
    apicMock.sysm.setVariable(key, value) Sets a variable in system-metadata *
    apicMock.sysm.getVariable(key) Gets a variable from system-metadata *
    apicMock.urlopen.addUrlOpenResponse(statusCode, reasonPhrase, json, buffer) Push a mock response to the urlopen responses stack (LIFO)
    apicMock.urlopen.addUrlOpenError(message) Push an error to the urlopen responses stack (LIFO)
    apicMock.urlopen.defaultResponse (Object) The response object you get when the responses stack is empty (for assertions)
    XML.parse(string) Parse string into a Document
    XML.stringify(xmlDoc) Stringify a Document into a string
    XML.query(xmlDoc, expression) ** Query a Document by an XPath expression
    XML.load(...) ** Loads a file into a Document, Arguments are the same as path.join, so you can use it like: XML.load(__dirname, 'my.xml') (file is in same dir) , Returns Document.

    * Without being traced, for setup phase (will not appear in Jest's call counters/records) ** Not used by gatewayscript, only for unit-test code.

    Example

    See apiconnect-custom-policy-project-example

    Install

    npm i jest-environment-ibm-apiconnect

    DownloadsWeekly Downloads

    2

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    17 kB

    Total Files

    15

    Last publish

    Collaborators

    • elisherer