1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | 'use strict'
|
7 |
|
8 | const writeout = require('../lib')
|
9 | const fs = require('fs')
|
10 |
|
11 | const path = require('path')
|
12 | const assert = require('assert')
|
13 | const mkdirp = require('mkdirp')
|
14 |
|
15 | let tmpDir = path.resolve(__dirname, '../tmp')
|
16 |
|
17 | describe('writeout', () => {
|
18 | before(() => {
|
19 | mkdirp.sync(tmpDir)
|
20 | })
|
21 |
|
22 | it('Do writeout.', async () => {
|
23 | let filename = path.resolve(tmpDir, 'foo/bar/baz.txt')
|
24 | let result = await writeout(filename, 'Oh!', {
|
25 | mkdirp: true,
|
26 | skipIfIdentical: false
|
27 | })
|
28 | assert.ok(result)
|
29 | let result2 = await writeout(filename, 'Oh!', {
|
30 | mkdirp: false,
|
31 | skipIfIdentical: true
|
32 | })
|
33 | assert.equal(result2.skipped, true)
|
34 | })
|
35 |
|
36 | it('Do writeout to force.', async () => {
|
37 | let filename = path.resolve(tmpDir, 'foo/bar/baz-readonly.txt')
|
38 | await writeout(filename, 'This is readonly.', {
|
39 | mkdirp: true,
|
40 | skipIfIdentical: false,
|
41 | mode: '444'
|
42 | })
|
43 | await writeout(filename, 'Override readonly file.', {
|
44 | mkdirp: false,
|
45 | skipIfIdentical: true,
|
46 | mode: '644',
|
47 | force: true
|
48 | })
|
49 | })
|
50 |
|
51 | it('Write from stream', async () => {
|
52 | let filename = path.resolve(tmpDir, 'foo/bar/baz-stream.txt')
|
53 | await writeout(filename, fs.createReadStream(__filename), {
|
54 | mkdirp: true,
|
55 | skipIfIdentical: false,
|
56 | force: true,
|
57 | mode: '444'
|
58 | })
|
59 | })
|
60 | })
|
61 |
|
62 |
|