@@ -3,6 +3,7 @@ const fs = require('fs')
3
3
const mockSpawn = require ( 'mock-spawn' )
4
4
const chai = require ( 'chai' )
5
5
const chaiAsPromised = require ( 'chai-as-promised' )
6
+ const sinon = require ( 'sinon' )
6
7
7
8
chai . use ( chaiAsPromised )
8
9
const { expect } = chai
@@ -27,14 +28,67 @@ describe('pgdump', () => {
27
28
)
28
29
} )
29
30
31
+ it ( 'should call pg_dump with some default args' , async ( ) => {
32
+ const pgdumpProcess = mockSpawn ( ) ( )
33
+ const pgDumpFn = sinon . fake . returns ( pgdumpProcess )
34
+ const config = { }
35
+ const p = pgdump ( config , pgDumpFn )
36
+ pgdumpProcess . stdout . write ( 'PGDMP - data - data' )
37
+ pgdumpProcess . emit ( 'close' , 0 )
38
+ await p
39
+
40
+ expect ( pgDumpFn . calledOnce ) . to . be . true
41
+ const pgDumpArgs = pgDumpFn . getCall ( 0 ) . args [ 1 ]
42
+ expect ( pgDumpArgs ) . to . deep . equal ( [ '-Fc' , '-Z1' ] )
43
+ } )
44
+
45
+ it ( 'should call pg_dump with provided extra arguments as array' , async ( ) => {
46
+ const pgdumpProcess = mockSpawn ( ) ( )
47
+ const pgDumpFn = sinon . fake . returns ( pgdumpProcess )
48
+ const config = {
49
+ PGDUMP_ARGS : [ '--exclude-table=ignored-table' , '-N' , 'public' ]
50
+ }
51
+ const p = pgdump ( config , pgDumpFn )
52
+ pgdumpProcess . stdout . write ( 'PGDMP - data - data' )
53
+ pgdumpProcess . emit ( 'close' , 0 )
54
+ await p
55
+
56
+ expect ( pgDumpFn . calledOnce ) . to . be . true
57
+ const pgDumpArgs = pgDumpFn . getCall ( 0 ) . args [ 1 ]
58
+
59
+ expect (
60
+ pgDumpArgs
61
+ ) . to . deep . equal ( [ '-Fc' , '-Z1' , '--exclude-table=ignored-table' , '-N' , 'public' ] )
62
+ } )
63
+
64
+ it ( 'should call pg_dump with provided extra arguments as string' , async ( ) => {
65
+ const pgdumpProcess = mockSpawn ( ) ( )
66
+ const pgDumpFn = sinon . fake . returns ( pgdumpProcess )
67
+ const config = {
68
+ PGDUMP_ARGS : '--exclude-table=ignored-table -N public'
69
+ }
70
+
71
+ const p = pgdump ( config , pgDumpFn )
72
+ pgdumpProcess . stdout . write ( 'PGDMP - data - data' )
73
+ pgdumpProcess . emit ( 'close' , 0 )
74
+ await p
75
+
76
+ expect ( pgDumpFn . calledOnce ) . to . be . true
77
+ const pgDumpArgs = pgDumpFn . getCall ( 0 ) . args [ 1 ]
78
+
79
+ expect (
80
+ pgDumpArgs
81
+ ) . to . deep . equal ( [ '-Fc' , '-Z1' , '--exclude-table=ignored-table' , '-N' , 'public' ] )
82
+ } )
83
+
30
84
it ( 'should stream correctly' , async ( ) => {
31
- const mySpawn = mockSpawn ( ) ( )
85
+ const pgdumpProcess = mockSpawn ( ) ( )
32
86
33
- const pgDumpFn = ( ) => mySpawn
87
+ const pgDumpFn = ( ) => pgdumpProcess
34
88
const config = { }
35
89
const p = pgdump ( config , pgDumpFn )
36
- mySpawn . stdout . write ( 'PGDMP - data - data' )
37
- mySpawn . emit ( 'close' , 0 )
90
+ pgdumpProcess . stdout . write ( 'PGDMP - data - data' )
91
+ pgdumpProcess . emit ( 'close' , 0 )
38
92
39
93
const buffer = await p
40
94
0 commit comments