1
+ import * as chai from 'chai' ;
2
+ import * as chaiAsPromised from 'chai-as-promised' ;
3
+ chai . use ( chaiAsPromised ) ;
4
+
1
5
import { assert , expect } from 'chai' ;
2
6
import * as fs from 'fs' ;
3
7
import 'mocha' ;
@@ -13,6 +17,8 @@ describe('FileReader', () => {
13
17
const validJsonFile = 'valid.json' ;
14
18
15
19
beforeEach ( ( ) => {
20
+ mockfs . restore && mockfs . restore ( ) ;
21
+
16
22
mockfs ( {
17
23
[ testDir ] : {
18
24
[ nonJsonFile ] : 'not a JSON file' ,
@@ -40,29 +46,6 @@ describe('FileReader', () => {
40
46
} ) ;
41
47
42
48
43
- it ( 'returns false if it fails to write file' , async ( ) => {
44
- const fileReader = FileReader ( path . join ( testDir , readonlyFile ) ) ;
45
- const contents = await fileReader . read ( ) ;
46
- mockfs . restore ( ) ;
47
- const fileWrite = await fileReader . write ( { ...contents , ...{ customKey : 'customValue' } } ) ;
48
- expect ( fileWrite ) . to . be . false ;
49
- } ) ;
50
-
51
-
52
- it ( 'returns false if it\'s not given a json-like file' , async ( ) => {
53
- const fileReader = FileReader ( path . join ( testDir , nonJsonFile ) ) ;
54
- const contents = await fileReader . read ( ) ;
55
- expect ( contents ) . to . be . false ;
56
- } ) ;
57
-
58
-
59
- it ( 'returns false if read failed' , async ( ) => {
60
- const fileReader = FileReader ( path . join ( testDir , nonReadableFile ) ) ;
61
- const response = await fileReader . read ( ) ;
62
- expect ( response ) . to . be . false ;
63
- } ) ;
64
-
65
-
66
49
it ( 'reads json-like file' , async ( ) => {
67
50
const fileReader = FileReader ( path . join ( testDir , validJsonFile ) ) ;
68
51
const contents = await fileReader . read ( ) ;
@@ -73,18 +56,41 @@ describe('FileReader', () => {
73
56
it ( 'writes new contents to file' , async ( ) => {
74
57
const fileReader = FileReader ( path . join ( testDir , validJsonFile ) ) ;
75
58
const contents = await fileReader . read ( ) ;
76
- const fileWrite = await fileReader . write ( { ...contents , ...{ customKey : 'customValue' } } ) ;
59
+ const fileWrite = await fileReader . write ( { ...contents , ...{ customKey : 'customValue' } } ) ;
77
60
expect ( fileWrite ) . to . be . true ;
78
61
} ) ;
79
62
80
63
81
64
it ( 'reads newly added content' , async ( ) => {
82
65
const fileReader = FileReader ( path . join ( testDir , validJsonFile ) ) ;
83
66
const oldContent = await fileReader . read ( ) ;
84
- const fileWrite = await fileReader . write ( { ...oldContent , ...{ customKey : 'customValue' } } ) ;
67
+ const fileWrite = await fileReader . write ( { ...oldContent , ...{ customKey : 'customValue' } } ) ;
85
68
const newContent = await fileReader . read ( ) ;
86
69
expect ( newContent . customKey ) . to . equal ( 'customValue' ) ;
87
70
} ) ;
88
71
89
- afterEach ( mockfs . restore ) ;
72
+
73
+ it ( 'rejects promise if read failed' , ( ) => {
74
+ const fileReader = FileReader ( path . join ( testDir , nonReadableFile ) ) ;
75
+ return expect ( fileReader . read ( ) ) . to . be . rejectedWith ( RegExp ( ERRORS . READ_ERROR ) ) ;
76
+ } ) ;
77
+
78
+
79
+ it ( 'rejects promise if write failed' , async ( ) => {
80
+ const fileReader = FileReader ( path . join ( testDir , readonlyFile ) ) ;
81
+ const contents = await fileReader . read ( ) ;
82
+ mockfs . restore ( ) ;
83
+ const fileWrite = fileReader . write ( { ...contents , ...{ customKey : 'customValue' } } ) ;
84
+ return expect ( fileWrite ) . to . be . rejectedWith ( RegExp ( ERRORS . WRITE_ERROR ) ) ;
85
+ } ) ;
86
+
87
+
88
+ it ( 'rejects promise if it\'s not given a JSON-like file' , done => {
89
+ const fileReader = FileReader ( path . join ( testDir , nonJsonFile ) ) ;
90
+ expect ( fileReader . read ( ) ) . to . be . rejectedWith ( ERRORS . NOT_JSON ) . notify ( done ) ;
91
+ } ) ;
92
+
93
+
94
+ afterEach ( ( ) => mockfs . restore && mockfs . restore ( ) ) ;
95
+ after ( ( ) => mockfs . restore && mockfs . restore ( ) ) ;
90
96
} ) ;
0 commit comments