Skip to content

Commit 18b42be

Browse files
author
denshikov-vovan
committed
some updates
1 parent ad2b337 commit 18b42be

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

tests/database.spec.ts

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {settings} from './settings';
1313

1414
const isWin = os.type().search('Windows') > -1;
1515

16-
let database, pool;
16+
let database, pool, pgDataDir;
1717

1818
describe.only('Database;', function () {
1919
this.timeout(15000);
@@ -22,6 +22,10 @@ describe.only('Database;', function () {
2222
try {
2323
database = new Database(settings);
2424
pool = database.pool;
25+
26+
if (isWin) {
27+
pgDataDir = await getPgDataDir(database);
28+
}
2529
done();
2630
} catch (err) {
2731
done(err);
@@ -30,7 +34,9 @@ describe.only('Database;', function () {
3034

3135
after(async done => {
3236
try {
33-
await startPostgresql();
37+
if (pgDataDir) {
38+
await startPostgresql();
39+
}
3440
await database.close();
3541
done();
3642
} catch (err) {
@@ -196,6 +202,9 @@ async function getUsers(session: Session, userId: number): Promise<any> {
196202
function execCommand(command: string): Promise<void> {
197203
return new Promise((resolve, reject) => {
198204
exec(command, (err, stdout, stderr) => {
205+
console.log(err)
206+
console.log(stderr)
207+
console.log(stdout)
199208
const error = err || stderr;
200209

201210
error ? reject(error) : resolve();
@@ -205,7 +214,7 @@ function execCommand(command: string): Promise<void> {
205214

206215
async function startPostgresql(): Promise<void> {
207216
const command = isWin
208-
? ''
217+
? `pg_ctl -D "${pgDataDir}" start`
209218
: 'brew services start postgresql';
210219

211220
await execCommand(command);
@@ -214,9 +223,25 @@ async function startPostgresql(): Promise<void> {
214223

215224
async function stopPostgresql(): Promise<void> {
216225
const command = isWin
217-
? ''
226+
? `pg_ctl -D "${pgDataDir}" stop`
218227
: 'brew services stop postgresql';
219228

220229
await execCommand(command);
221230
await wait(1000);
222231
}
232+
233+
async function getPgDataDir(db: Database): Promise<string> {
234+
const session = await connectToDatabase(db);
235+
236+
const query = {
237+
text: `SHOW data_directory`,
238+
mask: 'single'
239+
};
240+
241+
const result = await session.execute(query);
242+
243+
await session.close();
244+
await wait(settings.pool.idleTimeout + 500);
245+
246+
return result.data_directory;
247+
}

0 commit comments

Comments
 (0)