@nrk/expect-openapi
TypeScript icon, indicating that this package has built-in type declarations

2.6.0 • Public • Published

expect-openapi npm

Expect objects to match OpenAPI documents

Setup

yarn add -D @nrk/expect-openapi
# or
npm add --dev @nrk/expect-openapi

jest.setup.ts:

import { toMatchApiResponse, toMatchRef$ } from "@nrk/expect-openapi";
import expect from "expect";
expect.extend({ toMatchApiResponse, toMatchRef$ });

update the jest config:

setupFiles: ["<rootDir>/jest.setup.ts"],

Expect response to match OpenAPI path

import superagent from "superagent";
import openapi from "./openapi.json"; // OpenAPI 3 schema

describe("my api", () => {
  it("should have valid /fantastic response, according to spec", async () => {
    const url = `http://paspi.nrk.no/some/fantastic/path`;
    const response = await superagent.get(url).accept("application/json");
    // Asserts that:
    // - mime-type matches
    // - response code exists (or default)
    // - the schema matches the response body (assumes it is JSON)
    await expect(response).toMatchApiResponse(openapi, "get", "/fantastic");
  });
});

Expect object to match a part of a OpenAPI document

import openapi from "./openapi.json"; // OpenAPI 3 schema

describe("my complex api", () => {
  it("should match SimpleLink", async () => {
    const myLink = { href: "/my/fantastic/link" };
    // Asserts that:
    // - the reference can be resolved
    // - the resolved schema matches expected value
    await expect(myLink).toMatchRef$(
      openapi,
      "#/components/schemas/SimpleLink"
    );
  });
});

/@nrk/expect-openapi/

    Package Sidebar

    Install

    npm i @nrk/expect-openapi

    Weekly Downloads

    59

    Version

    2.6.0

    License

    MIT

    Unpacked Size

    18.4 kB

    Total Files

    17

    Last publish

    Collaborators

    • hammeralf
    • janerikbr
    • thormodb
    • siivers
    • torsrex
    • haraldsk
    • eskilgh
    • ragnaroh-nrk
    • daardal
    • arevjensen
    • julusian
    • madsern
    • andrefau
    • jfjeldskaar
    • muddah
    • jensrage
    • oysteinkoppang
    • phajsi
    • jorn_georg
    • bjornhels
    • halvorh
    • morten-nrk
    • nicklassvendsrud
    • kjellvnnrk
    • sanderknrk
    • nikolaia
    • eirikjstnrk
    • carinafraning
    • helenper
    • stefanogdennrk
    • jimmeloysund
    • tobiasrp
    • martiosk
    • jimalexberger
    • gunderwonder
    • hamnis
    • luminrk
    • supermeisen
    • vagifabilov
    • claudio-nrk
    • haakemon
    • zenangst
    • rannveignc
    • eschoien
    • balte
    • toshb
    • emte123
    • opet
    • klizter
    • mikkelnygard
    • feiring
    • dervodev
    • grimbur
    • gardkroyer
    • kariaan
    • edplayz
    • elias-chairi
    • miatollaksvik
    • ytterbo
    • machineboycom
    • trulsl
    • mslhm
    • cbjerkan
    • hermangudesen
    • andreeldareide
    • henningkoller
    • espenhalstensen
    • danjohnrk
    • olapeter
    • teodor-elstad
    • lorecaster
    • nrk-ps-teamcity
    • swla
    • nrk-midas-jenkins
    • andorpandor
    • nrkrichard
    • gesi
    • gundelsby-nrk
    • jonstalecarlsen
    • nrk-sofie-ci
    • nytamin
    • jesperstarkar
    • skjalgepalg
    • eirikhalvard
    • astokke
    • n640071
    • n07073
    • henrik-mattsson
    • haavardm
    • yr
    • nrk-kurator-jenkins
    • torgeilo
    • nrk-user-sync
    • dhdeploy
    • espenwa
    • ovstetun
    • stianlj
    • haraldkj
    • mariusu
    • cristobal
    • knuthaug
    • thohalv
    • johnarne
    • eshaswini
    • morrow
    • oyvindeh
    • laat
    • toggu
    • nrk-jenkins
    • plomma
    • evjand
    • moltubakk
    • ingridguren
    • lu-lux
    • andersli
    • silje
    • stiandg
    • sjurlur
    • andipodnrk
    • pkej
    • yosrimti
    • morten.nyhaug
    • ingvildcath
    • erlend.jones
    • brneirik
    • mollerse
    • tbnrk
    • nordanke
    • simonmitternacht
    • martintorgersen
    • rebchr
    • steipal
    • discobus
    • martingundersen
    • tinkajts
    • hallvardlid
    • tomivar
    • ajaco
    • tobinus
    • mortenok
    • nrk-ark-deploy
    • jeangilbertlouis
    • heidimork
    • ingriddraagen
    • fridajalborg
    • bruusi
    • rosvoll
    • christianeide
    • enordby
    • glen_imrie
    • mia.aasbakken
    • elathamna
    • evjjan17
    • olatoft
    • kongsrud
    • chrpeter
    • ingvildforseth
    • haraldk76
    • stigok
    • johannesodland
    • anders993
    • vildefj
    • vildepk
    • rolerboler
    • meloygutt
    • anders.baggethun