All files / src/test-routes additional-properties.ts

0% Statements 0/26
100% Branches 0/0
0% Functions 0/7
0% Lines 0/26

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123                                                                                                                                                                                                                                                     
import { app, json } from "../api";
 
app.category("vanilla", () => {
  app.put("/additionalProperties/true", "additionalPropertiesTrue", (req) => {
    const expectedBody = {
      id: 1,
      name: "Puppy",
      birthdate: "2017-12-13T02:29:51Z",
      complexProperty: {
        color: "Red",
      },
    };
 
    req.expect.coercedBodyEquals(expectedBody);
    return {
      status: 200,
      body: json({ ...expectedBody, status: true }),
    };
  });
 
  app.put("/additionalProperties/true-subclass", "additionalPropertiesSubclass", (req) => {
    const expectedBody = {
      id: 1,
      name: "Lisa",
      friendly: true,
      birthdate: "2017-12-13T02:29:51Z",
      complexProperty: {
        color: "Red",
      },
    };
 
    req.expect.coercedBodyEquals(expectedBody);
    return {
      status: 200,
      body: json({ ...expectedBody, status: true }),
    };
  });
 
  app.put("/additionalProperties/type/object", "additionalPropertiesTypeObject", (req) => {
    const expectedBody = {
      id: 2,
      name: "Hira",
      siblings: [
        {
          id: 1,
          name: "Puppy",
          birthdate: "2017-12-13T02:29:51Z",
          complexProperty: {
            color: "Red",
          },
        },
      ],
      picture: new Buffer([255, 255, 255, 255, 254]).toString("base64"),
    };
 
    req.expect.coercedBodyEquals(expectedBody);
    return {
      status: 200,
      body: json({ ...expectedBody, status: true }),
    };
  });
 
  app.put("/additionalProperties/type/string", "additionalPropertiesTypeString", (req) => {
    const expectedBody = {
      id: 3,
      name: "Tommy",
      color: "red",
      weight: "10 kg",
      city: "Bombay",
    };
 
    req.expect.bodyEquals(expectedBody);
    return {
      status: 200,
      body: json({ ...expectedBody, status: true }),
    };
  });
 
  app.put("/additionalProperties/in/properties", "additionalPropertiesInProperties", (req) => {
    const expectedBody = {
      id: 4,
      name: "Bunny",
      additionalProperties: {
        height: 5.61,
        weight: 599,
        footsize: 11.5,
      },
    };
 
    req.expect.bodyEquals(expectedBody);
    return {
      status: 200,
      body: json({ ...expectedBody, status: true }),
    };
  });
 
  app.put(
    "/additionalProperties/in/properties/with/additionalProperties/string",
    "additionalPropertiesInPropertiesWithAPTypeString",
    (req) => {
      const expectedBody = {
        "id": 5,
        "name": "Funny",
        "@odata.location": "westus",
        "additionalProperties": {
          height: 5.61,
          weight: 599,
          footsize: 11.5,
        },
        "color": "red",
        "city": "Seattle",
        "food": "tikka masala",
      };
 
      req.expect.bodyEquals(expectedBody);
      return {
        status: 200,
        body: json({ ...expectedBody, status: true }),
      };
    },
  );
});