mysql tests
This commit is contained in:
parent
172db5f255
commit
c0e9ee282a
|
@ -2,7 +2,7 @@ const mysql = {}
|
|||
|
||||
const client = {
|
||||
connect: jest.fn(),
|
||||
query: jest.fn(console.log),
|
||||
query: jest.fn(),
|
||||
}
|
||||
|
||||
mysql.createConnection = jest.fn(() => client)
|
||||
|
|
|
@ -65,7 +65,6 @@ class MySQLIntegration {
|
|||
// Node MySQL is callback based, so we must wrap our call in a promise
|
||||
return new Promise((resolve, reject) => {
|
||||
this.client.connect()
|
||||
console.log(this.client.query())
|
||||
return this.client.query(query.sql, (error, results) => {
|
||||
if (error) return reject(error)
|
||||
resolve(results)
|
||||
|
@ -76,7 +75,7 @@ class MySQLIntegration {
|
|||
|
||||
async create(query) {
|
||||
const results = await this.query(query)
|
||||
return results.length ? results : { created: true }
|
||||
return results.length ? results : [{ created: true }]
|
||||
}
|
||||
|
||||
read(query) {
|
||||
|
@ -85,12 +84,12 @@ class MySQLIntegration {
|
|||
|
||||
async update(query) {
|
||||
const results = await this.query(query)
|
||||
return results.length ? results : { updated: true }
|
||||
return results.length ? results : [{ updated: true }]
|
||||
}
|
||||
|
||||
async delete(query) {
|
||||
const results = await this.query(query)
|
||||
return results.length ? results : { deleted: true }
|
||||
return results.length ? results : [{ deleted: true }]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,8 @@ jest.mock("mysql")
|
|||
class TestConfiguration {
|
||||
constructor(config = { ssl: {} }) {
|
||||
this.integration = new MySQLIntegration.integration(config)
|
||||
this.query = jest.fn(() => [{ id: 1 }])
|
||||
this.integration.query = this.query
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -15,13 +17,12 @@ describe("MySQL Integration", () => {
|
|||
config = new TestConfiguration()
|
||||
})
|
||||
|
||||
fit("calls the create method with the correct params", async () => {
|
||||
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
|
||||
})
|
||||
console.log(response)
|
||||
expect(config.integration.client.query).resolves.toHaveBeenCalledWith(sql)
|
||||
expect(config.query).toHaveBeenCalledWith({ sql })
|
||||
})
|
||||
|
||||
it("calls the read method with the correct params", async () => {
|
||||
|
@ -29,7 +30,9 @@ describe("MySQL Integration", () => {
|
|||
const response = await config.integration.read({
|
||||
sql
|
||||
})
|
||||
expect(config.integration.client.query).toHaveBeenCalledWith(sql)
|
||||
expect(config.query).toHaveBeenCalledWith({
|
||||
sql
|
||||
})
|
||||
})
|
||||
|
||||
it("calls the update method with the correct params", async () => {
|
||||
|
@ -37,7 +40,7 @@ describe("MySQL Integration", () => {
|
|||
const response = await config.integration.update({
|
||||
sql
|
||||
})
|
||||
expect(config.integration.client.query).toHaveBeenCalledWith(sql)
|
||||
expect(config.query).toHaveBeenCalledWith({ sql })
|
||||
})
|
||||
|
||||
it("calls the delete method with the correct params", async () => {
|
||||
|
@ -45,10 +48,14 @@ describe("MySQL Integration", () => {
|
|||
const response = await config.integration.delete({
|
||||
sql
|
||||
})
|
||||
expect(config.integration.client.query).toHaveBeenCalledWith(sql)
|
||||
expect(config.query).toHaveBeenCalledWith({ sql })
|
||||
})
|
||||
|
||||
describe("no rows returned", () => {
|
||||
beforeEach(() => {
|
||||
config.query.mockImplementation(() => [])
|
||||
})
|
||||
|
||||
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({
|
||||
|
|
Loading…
Reference in New Issue