Skip to content

Instantly share code, notes, and snippets.

@talentdeficit
Created November 23, 2017 23:29
Show Gist options
  • Save talentdeficit/482ad61ad1ad9472543d71687dacdf5e to your computer and use it in GitHub Desktop.
Save talentdeficit/482ad61ad1ad9472543d71687dacdf5e to your computer and use it in GitHub Desktop.
import { assert } from "chai";
import axios from "axios";
import "mocha";
import { isUUID } from "validator";
var port = process.env["PORT"] || "8000";
var baseURL = "http://localhost:" + port;
var client = axios.create({
baseURL: baseURL,
timeout: 1000
});
describe("the `/foo` endpoint", () => {
const uri = "/foo/";
is("should allow a foo to be created, retrieved, updated and deleted", async () => {
const ins = await client.post(uri, JSON.stringify({ key: "kanto" }));
const id = ins.data.id
assert.equal(ins.status, 200);
assert.equal(ins.data.key, "kanto");
assert.isTrue(isUUID(ins.data.id));
assert.isNotNaN(Date.parse(ins.data.created_at));
assert.isUndefined(ins.data.updated_at);
const lookup = await client.get(uri, { params: { key: "kanto" } })
assert.equal(lookup.status, 200);
assert.equal(lookup.data.results.length, 1);
assert.equal(lookup.data.results[0].id, ins.data.id);
assert.equal(lookup.data.results[0].key, ins.data.key);
assert.equal(lookup.data.results[0].created_at, ins.data.created_at);
assert.isUndefined(lookup.data.results[0].updated_at);
const up = await client.patch(uri + id, JSON.stringify({ key: "johto" }))
assert.equal(up.status, 200);
assert.equal(up.data.key, "johto");
assert.equal(up.data.id, ins.data.id);
assert.equal(up.data.created_at, ins.data.created_at);
assert.isNotNaN(Date.parse(up.data.updated_at));
const del = await client.delete(uri + id);
assert.equal(del.status, 200);
assert.equal(del.data.key, up.data.key);
assert.equal(del.data.id, ins.data.id);
assert.equal(del.data.created_at, ins.data.created_at);
try {
await client.get(uri + id);
} catch (e) {
assert.equal(e.response.status, 404);
}
const empty = await client.get(uri);
assert.equal(empty.status, 200);
assert.equal(empty.data.results.length, 0);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment