Skip to content

Commit 92becb0

Browse files
AVaksmanfhinkel
authored andcommitted
cloud-sql/postgres to mocha (GoogleCloudPlatform#1233)
1 parent 593a350 commit 92becb0

3 files changed

Lines changed: 75 additions & 77 deletions

File tree

cloud-sql/postgres/knex/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"node": ">=8"
1414
},
1515
"scripts": {
16-
"unit-test": "ava --verbose test/*.test.js",
16+
"unit-test": "mocha test/*.test.js --timeout=60000 --exit",
1717
"start-proxy": "! pgrep cloud_sql_proxy > /dev/null && cloud_sql_proxy -dir=/cloudsql -instances=$CLOUD_SQL_INSTANCE_NAME &",
1818
"system-test": "repo-tools test app -- server.js",
1919
"system-test-proxy": "npm run start-proxy; npm run system-test",
@@ -30,8 +30,8 @@
3030
"winston": "^3.1.0"
3131
},
3232
"devDependencies": {
33-
"@google-cloud/nodejs-repo-tools": "^3.2.0",
34-
"ava": "^0.25.0",
33+
"@google-cloud/nodejs-repo-tools": "3.2.0",
34+
"mocha": "^6.0.0",
3535
"proxyquire": "^2.1.0",
3636
"supertest": "^4.0.0",
3737
"sinon": "^7.1.1"

cloud-sql/postgres/knex/test/createTable.test.js

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515

1616
'use strict';
1717

18-
const test = require(`ava`);
19-
const path = require(`path`);
20-
const proxyquire = require(`proxyquire`).noPreserveCache();
21-
const sinon = require(`sinon`);
22-
const tools = require(`@google-cloud/nodejs-repo-tools`);
18+
const assert = require('assert');
19+
const path = require('path');
20+
const proxyquire = require('proxyquire').noPreserveCache();
21+
const sinon = require('sinon');
22+
const tools = require('@google-cloud/nodejs-repo-tools');
2323

24-
const SAMPLE_PATH = path.join(__dirname, `../createTables.js`);
24+
const SAMPLE_PATH = path.join(__dirname, '../createTable.js');
2525

26-
const exampleConfig = [`user`, `password`, `database`];
26+
const exampleConfig = ['user', 'password', 'database'];
2727

2828
function getSample() {
2929
const configMock = exampleConfig;
@@ -58,10 +58,10 @@ function getSample() {
5858
};
5959
}
6060

61-
test.beforeEach(tools.stubConsole);
62-
test.afterEach.always(tools.restoreConsole);
61+
beforeEach(tools.stubConsole);
62+
afterEach(tools.restoreConsole);
6363

64-
test.cb.serial(`should create a table`, t => {
64+
it('should create a table', async () => {
6565
const sample = getSample();
6666
const expectedResult = `Successfully created 'votes' table.`;
6767

@@ -70,30 +70,34 @@ test.cb.serial(`should create a table`, t => {
7070
prompt: sample.mocks.prompt,
7171
});
7272

73-
t.true(sample.mocks.prompt.start.calledOnce);
74-
t.true(sample.mocks.prompt.get.calledOnce);
75-
t.deepEqual(sample.mocks.prompt.get.firstCall.args[0], exampleConfig);
76-
77-
setTimeout(() => {
78-
t.true(sample.mocks.Knex.calledOnce);
79-
t.deepEqual(sample.mocks.Knex.firstCall.args, [
80-
{
81-
client: 'pg',
82-
connection: exampleConfig,
83-
},
84-
]);
85-
86-
t.true(sample.mocks.knex.schema.createTable.calledOnce);
87-
t.is(sample.mocks.knex.schema.createTable.firstCall.args[0], 'votes');
88-
89-
t.true(console.log.calledWith(expectedResult));
90-
t.true(sample.mocks.knex.destroy.calledOnce);
91-
t.end();
92-
}, 10);
73+
assert.ok(sample.mocks.prompt.start.calledOnce);
74+
assert.ok(sample.mocks.prompt.get.calledOnce);
75+
assert.deepStrictEqual(
76+
sample.mocks.prompt.get.firstCall.args[0],
77+
exampleConfig
78+
);
79+
80+
await new Promise(r => setTimeout(r, 10));
81+
assert.ok(sample.mocks.Knex.calledOnce);
82+
assert.deepStrictEqual(sample.mocks.Knex.firstCall.args, [
83+
{
84+
client: 'pg',
85+
connection: exampleConfig,
86+
},
87+
]);
88+
89+
assert.ok(sample.mocks.knex.schema.createTable.calledOnce);
90+
assert.strictEqual(
91+
sample.mocks.knex.schema.createTable.firstCall.args[0],
92+
'votes'
93+
);
94+
95+
assert.ok(console.log.calledWith(expectedResult));
96+
assert.ok(sample.mocks.knex.destroy.calledOnce);
9397
});
9498

95-
test.cb.serial(`should handle prompt error`, t => {
96-
const error = new Error(`error`);
99+
it('should handle prompt error', async () => {
100+
const error = new Error('error');
97101
const sample = getSample();
98102
sample.mocks.prompt.get = sinon.stub().yields(error);
99103

@@ -102,16 +106,14 @@ test.cb.serial(`should handle prompt error`, t => {
102106
prompt: sample.mocks.prompt,
103107
});
104108

105-
setTimeout(() => {
106-
t.true(console.error.calledOnce);
107-
t.true(console.error.calledWith(error));
108-
t.true(sample.mocks.Knex.notCalled);
109-
t.end();
110-
}, 10);
109+
await new Promise(r => setTimeout(r, 10));
110+
assert.ok(console.error.calledOnce);
111+
assert.ok(console.error.calledWith(error));
112+
assert.ok(sample.mocks.Knex.notCalled);
111113
});
112114

113-
test.cb.serial(`should handle knex creation error`, t => {
114-
const error = new Error(`error`);
115+
it('should handle knex creation error', async () => {
116+
const error = new Error('error');
115117
const sample = getSample();
116118
sample.mocks.knex.schema.createTable = sinon
117119
.stub()
@@ -122,10 +124,8 @@ test.cb.serial(`should handle knex creation error`, t => {
122124
prompt: sample.mocks.prompt,
123125
});
124126

125-
setTimeout(() => {
126-
t.true(console.error.calledOnce);
127-
t.true(console.error.calledWith(`Failed to create 'votes' table:`, error));
128-
t.true(sample.mocks.knex.destroy.calledOnce);
129-
t.end();
130-
}, 10);
127+
await new Promise(r => setTimeout(r, 10));
128+
assert.ok(console.error.calledOnce);
129+
assert.ok(console.error.calledWith(`Failed to create 'votes' table:`, error));
130+
assert.ok(sample.mocks.knex.destroy.calledOnce);
131131
});

cloud-sql/postgres/knex/test/server.test.js

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@
1515

1616
'use strict';
1717

18-
const express = require(`express`);
19-
const path = require(`path`);
20-
const proxyquire = require(`proxyquire`).noCallThru();
21-
const request = require(`supertest`);
22-
const sinon = require(`sinon`);
23-
const test = require(`ava`);
24-
const tools = require(`@google-cloud/nodejs-repo-tools`);
18+
const express = require('express');
19+
const path = require('path');
20+
const proxyquire = require('proxyquire').noCallThru();
21+
const request = require('supertest');
22+
const sinon = require('sinon');
23+
const assert = require('assert');
24+
const tools = require('@google-cloud/nodejs-repo-tools');
2525

26-
const SAMPLE_PATH = path.join(__dirname, `../server.js`);
26+
const SAMPLE_PATH = path.join(__dirname, '../server.js');
2727

2828
function getSample() {
2929
const testApp = express();
30-
sinon.stub(testApp, `listen`).yields();
30+
sinon.stub(testApp, 'listen').yields();
3131
const expressMock = sinon.stub().returns(testApp);
3232
const timestamp = new Date();
3333
const resultsMock = [
@@ -75,15 +75,15 @@ function getSample() {
7575
};
7676
}
7777

78-
test.beforeEach(tools.stubConsole);
79-
test.afterEach.always(tools.restoreConsole);
78+
beforeEach(tools.stubConsole);
79+
afterEach(tools.restoreConsole);
8080

81-
test(`should set up sample in Postgres`, t => {
81+
it('should set up sample in Postgres', () => {
8282
const sample = getSample();
8383

84-
t.true(sample.mocks.express.calledOnce);
85-
t.true(sample.mocks.Knex.calledOnce);
86-
t.deepEqual(sample.mocks.Knex.firstCall.args, [
84+
assert.ok(sample.mocks.express.calledOnce);
85+
assert.ok(sample.mocks.Knex.calledOnce);
86+
assert.deepStrictEqual(sample.mocks.Knex.firstCall.args, [
8787
{
8888
client: 'pg',
8989
connection: {
@@ -95,30 +95,28 @@ test(`should set up sample in Postgres`, t => {
9595
]);
9696
});
9797

98-
test.cb(`should display the default page`, t => {
98+
it('should display the default page', async () => {
9999
const sample = getSample();
100-
const expectedResult = `Tabs VS Spaces`;
100+
const expectedResult = 'Tabs VS Spaces';
101101

102-
request(sample.app)
103-
.get(`/`)
102+
await request(sample.app)
103+
.get('/')
104104
.expect(200)
105105
.expect(response => {
106-
t.is(response.text, expectedResult);
107-
})
108-
.end(t.end);
106+
assert.strictEqual(response.text, expectedResult);
107+
});
109108
});
110109

111-
test.cb(`should handle insert error`, t => {
110+
it('should handle insert error', async () => {
112111
const sample = getSample();
113112
const expectedResult = 'Invalid team specified';
114113

115114
sample.mocks.knex.limit.returns(Promise.reject());
116115

117-
request(sample.app)
118-
.post(`/`)
116+
await request(sample.app)
117+
.post('/')
119118
.expect(400)
120119
.expect(response => {
121-
t.is(response.text.includes(expectedResult), true);
122-
})
123-
.end(t.end);
120+
assert.ok(response.text.includes(expectedResult));
121+
});
124122
});

0 commit comments

Comments
 (0)