Browse Source

Tests WIP

pull/3644/head
Rory Powell 5 years ago
parent
commit
2dee59aa64
  1. 71
      packages/server/src/api/controllers/query/import/sources/tests/curl.spec.js
  2. 88
      packages/server/src/api/controllers/query/import/sources/tests/curl/curl.spec.js
  3. 1
      packages/server/src/api/controllers/query/import/sources/tests/curl/data/delete.txt
  4. 1
      packages/server/src/api/controllers/query/import/sources/tests/curl/data/get.txt
  5. 3
      packages/server/src/api/controllers/query/import/sources/tests/curl/data/headers.txt
  6. 2
      packages/server/src/api/controllers/query/import/sources/tests/curl/data/patch.txt
  7. 1
      packages/server/src/api/controllers/query/import/sources/tests/curl/data/path.txt
  8. 2
      packages/server/src/api/controllers/query/import/sources/tests/curl/data/post.txt
  9. 2
      packages/server/src/api/controllers/query/import/sources/tests/curl/data/put.txt
  10. 1
      packages/server/src/api/controllers/query/import/sources/tests/curl/data/query.txt
  11. 0
      packages/server/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js
  12. 0
      packages/server/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js

71
packages/server/src/api/controllers/query/import/sources/tests/curl.spec.js

@ -1,71 +0,0 @@
// const Airtable = require("airtable")
// const AirtableIntegration = require("../airtable")
jest.mock("airtable")
// class TestConfiguration {
// constructor(config = {}) {
// this.integration = new AirtableIntegration.integration(config)
// this.client = {
// create: jest.fn(),
// select: jest.fn(),
// update: jest.fn(),
// destroy: jest.fn(),
// }
// this.integration.client = () => this.client
// }
// }
describe("Airtable Integration", () => {
let config
beforeEach(() => {
config = new TestConfiguration()
})
it("calls the create method with the correct params", async () => {
const response = await config.integration.create({
table: "test",
json: {}
})
expect(config.client.create).toHaveBeenCalledWith([
{
fields: {}
}
])
})
it("calls the read method with the correct params", async () => {
const response = await config.integration.read({
table: "test",
view: "Grid view"
})
expect(config.client.select).toHaveBeenCalledWith({
maxRecords: 10, view: "Grid view"
})
})
it("calls the update method with the correct params", async () => {
const response = await config.integration.update({
table: "test",
id: "123",
json: {
name: "test"
}
})
expect(config.client.update).toHaveBeenCalledWith([
{
id: "123",
fields: { name: "test" }
}
])
})
it("calls the delete method with the correct params", async () => {
const ids = [1,2,3,4]
const response = await config.integration.delete({
ids
})
expect(config.client.destroy).toHaveBeenCalledWith(ids)
})
})

88
packages/server/src/api/controllers/query/import/sources/tests/curl/curl.spec.js

@ -0,0 +1,88 @@
// const Airtable = require("airtable")
// const AirtableIntegration = require("../airtable")
const { Curl } = require("../../curl")
const fs = require("fs")
const path = require('path')
jest.mock("airtable")
// class TestConfiguration {
// constructor(config = {}) {
// this.integration = new AirtableIntegration.integration(config)
// this.client = {
// create: jest.fn(),
// select: jest.fn(),
// update: jest.fn(),
// destroy: jest.fn(),
// }
// this.integration.client = () => this.client
// }
// }
const getData = (file) => {
return fs.readFileSync(path.join(__dirname, `./data/${file}.txt`), "utf8")
}
describe("Curl Import", () => {
let curl
beforeEach(() => {
curl = new Curl()
})
it("validates unsupported data", async () => {
let data
let supported
// JSON
data = "{}"
supported = await curl.isSupported(data)
expect(supported).toBe(false)
// Empty
data = ""
supported = await curl.isSupported(data)
expect(supported).toBe(false)
})
it("returns import info", async () => {
const data = getData()
await curl.isSupported(data)
const info = await curl.getInfo()
expect(info.url).toBe("http://example.com")
expect(info.name).toBe("example.com")
})
describe("Returns queries", () => {
describe("populates verb", () => {
const testVerb = async (file, verb) => {
const data = getData(file)
await curl.isSupported(data)
const queries = await curl.getQueries(data)
expect(queries.length).toBe(1)
expect(queries[0].verb).toBe(verb)
}
it("populates verb", async () => {
await testVerb("get", "read")
await testVerb("post", "create")
await testVerb("put", "update")
await testVerb("delete", "delete")
await testVerb("patch", "patch")
})
})
it("populates path", async () => {
})
it("populates headers", async () => {
})
it("populates query", async () => {
})
it("populates body", async () => {
})
})
})

1
packages/server/src/api/controllers/query/import/sources/tests/curl/data/delete.txt

@ -0,0 +1 @@
curl -X DELETE 'http://example.com'

1
packages/server/src/api/controllers/query/import/sources/tests/curl/data/get.txt

@ -0,0 +1 @@
curl 'http://example.com'

3
packages/server/src/api/controllers/query/import/sources/tests/curl/data/headers.txt

@ -0,0 +1,3 @@
curl 'http://example.com' \
-H 'x-bb-header-1: 123' \
-H 'x-bb-header-2: 1456'

2
packages/server/src/api/controllers/query/import/sources/tests/curl/data/patch.txt

@ -0,0 +1,2 @@
curl -X PATCH 'http://example.com/paths/abc' \
--data-raw '{ "key" : "val" }'

1
packages/server/src/api/controllers/query/import/sources/tests/curl/data/path.txt

@ -0,0 +1 @@
curl 'http://example.com/paths/abc'

2
packages/server/src/api/controllers/query/import/sources/tests/curl/data/post.txt

@ -0,0 +1,2 @@
curl -X POST 'http://example.com' \
--data-raw '{ "key" : "val" }'

2
packages/server/src/api/controllers/query/import/sources/tests/curl/data/put.txt

@ -0,0 +1,2 @@
curl -X PUT 'http://example.com/paths/abc' \
--data-raw '{ "key" : "val" }'

1
packages/server/src/api/controllers/query/import/sources/tests/curl/data/query.txt

@ -0,0 +1 @@
curl 'http://example.com/paths/abc?q1=v1&q1=v2'

0
packages/server/src/api/controllers/query/import/sources/tests/openapi2.spec.js → packages/server/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js

0
packages/server/src/api/controllers/query/import/sources/tests/openapi.spec.js → packages/server/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js

Loading…
Cancel
Save