/
persistor.test.js
101 lines (84 loc) · 2.92 KB
/
persistor.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import fs from 'fs';
import chai from 'chai';
import { RAW_DIRECTORY, save, commit, persist } from './persistor.js';
const expect = chai.expect;
const SERVICE_PROVIDER_ID = 'test_service_provider';
const POLICY_TYPE = 'terms_of_service';
const FILE_CONTENT = 'ToS fixture data with UTF-8 çhãràčtęrs';
const EXPECTED_FILE_PATH = `${RAW_DIRECTORY}/${SERVICE_PROVIDER_ID}/${POLICY_TYPE}.html`;
describe('Persistor', () => {
describe('#save', () => {
context('when service provider’s directory already exist', () => {
after(() => {
fs.unlinkSync(EXPECTED_FILE_PATH);
});
it('creates a file for the given service provider', async () => {
await save({
serviceProviderId: SERVICE_PROVIDER_ID,
policyType: POLICY_TYPE,
fileContent: FILE_CONTENT,
isSanitized: false
});
expect(fs.readFileSync(EXPECTED_FILE_PATH, { encoding: 'utf8' })).to.equal(FILE_CONTENT);
});
});
context('when service provider’s directory does not already exist', () => {
const NEW_SERVICE_PROVIDER_ID = 'test_not_existing_service_provider';
const NEW_SERVICE_PROVIDER_EXPECTED_FILE_PATH = `${RAW_DIRECTORY}/${NEW_SERVICE_PROVIDER_ID}/${POLICY_TYPE}.html`;
after(() => {
fs.unlinkSync(NEW_SERVICE_PROVIDER_EXPECTED_FILE_PATH);
});
it('creates a directory and file for the given service provider', async () => {
await save({
serviceProviderId: NEW_SERVICE_PROVIDER_ID,
policyType: POLICY_TYPE,
fileContent: FILE_CONTENT,
isSanitized: false
});
expect(fs.readFileSync(NEW_SERVICE_PROVIDER_EXPECTED_FILE_PATH, { encoding: 'utf8' })).to.equal(FILE_CONTENT);
});
});
});
describe('#commit', () => {
before(async () => {
return save({
serviceProviderId: SERVICE_PROVIDER_ID,
policyType: POLICY_TYPE,
fileContent: FILE_CONTENT,
isSanitized: false
});
});
after(() => {
fs.unlinkSync(EXPECTED_FILE_PATH);
});
it('commits the file for the given service provider', async () => {
const sha = await commit({
serviceProviderId: SERVICE_PROVIDER_ID,
policyType: POLICY_TYPE,
isSanitized: false
});
expect(sha).to.not.be.null;
});
});
describe('#persist', () => {
let sha;
before(async () => {
sha = await persist({
serviceProviderId: SERVICE_PROVIDER_ID,
policyType: POLICY_TYPE,
fileContent: FILE_CONTENT,
isSanitized: false
});
});
after(() => {
fs.unlinkSync(EXPECTED_FILE_PATH);
});
it('creates a file for the given service provider', () => {
expect(fs.readFileSync(EXPECTED_FILE_PATH, { encoding: 'utf8' })).to.equal(FILE_CONTENT);
});
it('commits the file for the given service provider', () => {
expect(sha).to.exist;
expect(sha).to.be.a('string');
});
});
});