forked from tsai/budibase
6 changed files with 159 additions and 4 deletions
@ -0,0 +1,10 @@ |
|||||
|
const mysql = {} |
||||
|
|
||||
|
const client = { |
||||
|
connect: jest.fn(), |
||||
|
query: jest.fn((sql, cb) => cb), |
||||
|
} |
||||
|
|
||||
|
mysql.createConnection = jest.fn(() => client) |
||||
|
|
||||
|
module.exports = mysql |
||||
@ -0,0 +1,8 @@ |
|||||
|
function CouchDB() { |
||||
|
this.post = jest.fn() |
||||
|
this.allDocs = jest.fn(() => ({ rows: [] })) |
||||
|
this.put = jest.fn() |
||||
|
this.remove = jest.fn() |
||||
|
} |
||||
|
|
||||
|
module.exports = CouchDB |
||||
@ -0,0 +1,61 @@ |
|||||
|
const PouchDB = require("pouchdb") |
||||
|
const CouchDBIntegration = require("../couchdb") |
||||
|
jest.mock("pouchdb") |
||||
|
|
||||
|
class TestConfiguration { |
||||
|
constructor(config = {}) { |
||||
|
this.integration = new CouchDBIntegration.integration(config) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
describe("CouchDB Integration", () => { |
||||
|
let config |
||||
|
|
||||
|
beforeEach(() => { |
||||
|
config = new TestConfiguration() |
||||
|
}) |
||||
|
|
||||
|
it("calls the create method with the correct params", async () => { |
||||
|
const doc = { |
||||
|
test: 1 |
||||
|
} |
||||
|
const response = await config.integration.create({ |
||||
|
json: doc |
||||
|
}) |
||||
|
expect(config.integration.client.post).toHaveBeenCalledWith(doc) |
||||
|
}) |
||||
|
|
||||
|
it("calls the read method with the correct params", async () => { |
||||
|
const doc = { |
||||
|
name: "search" |
||||
|
} |
||||
|
|
||||
|
const response = await config.integration.read({ |
||||
|
json: doc |
||||
|
}) |
||||
|
|
||||
|
expect(config.integration.client.allDocs).toHaveBeenCalledWith({ |
||||
|
include_docs: true, |
||||
|
name: "search" |
||||
|
}) |
||||
|
}) |
||||
|
|
||||
|
it("calls the update method with the correct params", async () => { |
||||
|
const doc = { |
||||
|
_id: "1234", |
||||
|
name: "search" |
||||
|
} |
||||
|
|
||||
|
const response = await config.integration.update({ |
||||
|
json: doc |
||||
|
}) |
||||
|
|
||||
|
expect(config.integration.client.put).toHaveBeenCalledWith(doc) |
||||
|
}) |
||||
|
|
||||
|
it("calls the delete method with the correct params", async () => { |
||||
|
const id = "1234" |
||||
|
const response = await config.integration.delete({ id }) |
||||
|
expect(config.integration.client.remove).toHaveBeenCalledWith(id) |
||||
|
}) |
||||
|
}) |
||||
@ -0,0 +1,75 @@ |
|||||
|
const pg = require("mysql") |
||||
|
const MySQLIntegration = require("../mysql") |
||||
|
jest.mock("mysql") |
||||
|
|
||||
|
class TestConfiguration { |
||||
|
constructor(config = { ssl: {} }) { |
||||
|
this.integration = new MySQLIntegration.integration(config) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
describe("MySQL Integration", () => { |
||||
|
let config |
||||
|
|
||||
|
beforeEach(() => { |
||||
|
config = new TestConfiguration() |
||||
|
}) |
||||
|
|
||||
|
it("calls the create method with the correct params", async () => { |
||||
|
const sql = "insert into users (name, age) values ('Joe', 123);" |
||||
|
const response = await config.integration.create({ |
||||
|
sql |
||||
|
}) |
||||
|
expect(config.integration.client.query).toHaveBeenCalledWith(sql) |
||||
|
}) |
||||
|
|
||||
|
it("calls the read method with the correct params", async () => { |
||||
|
const sql = "select * from users;" |
||||
|
const response = await config.integration.read({ |
||||
|
sql |
||||
|
}) |
||||
|
expect(config.integration.client.query).toHaveBeenCalledWith(sql) |
||||
|
}) |
||||
|
|
||||
|
it("calls the update method with the correct params", async () => { |
||||
|
const sql = "update table users set name = 'test';" |
||||
|
const response = await config.integration.update({ |
||||
|
sql |
||||
|
}) |
||||
|
expect(config.integration.client.query).toHaveBeenCalledWith(sql) |
||||
|
}) |
||||
|
|
||||
|
it("calls the delete method with the correct params", async () => { |
||||
|
const sql = "delete from users where name = 'todelete';" |
||||
|
const response = await config.integration.delete({ |
||||
|
sql |
||||
|
}) |
||||
|
expect(config.integration.client.query).toHaveBeenCalledWith(sql) |
||||
|
}) |
||||
|
|
||||
|
describe("no rows returned", () => { |
||||
|
it("returns the correct response when the create response has no rows", async () => { |
||||
|
const sql = "insert into users (name, age) values ('Joe', 123);" |
||||
|
const response = await config.integration.create({ |
||||
|
sql |
||||
|
}) |
||||
|
expect(response).toEqual([{ created: true }]) |
||||
|
}) |
||||
|
|
||||
|
it("returns the correct response when the update response has no rows", async () => { |
||||
|
const sql = "update table users set name = 'test';" |
||||
|
const response = await config.integration.update({ |
||||
|
sql |
||||
|
}) |
||||
|
expect(response).toEqual([{ updated: true }]) |
||||
|
}) |
||||
|
|
||||
|
it("returns the correct response when the delete response has no rows", async () => { |
||||
|
const sql = "delete from users where name = 'todelete';" |
||||
|
const response = await config.integration.delete({ |
||||
|
sql |
||||
|
}) |
||||
|
expect(response).toEqual([{ deleted: true }]) |
||||
|
}) |
||||
|
}) |
||||
|
}) |
||||
Loading…
Reference in new issue