Created
November 23, 2017 23:29
-
-
Save talentdeficit/482ad61ad1ad9472543d71687dacdf5e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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