UNPKG

1.43 kBJavaScriptView Raw
1/**
2 * Test for writeout.js
3 * Runs with mocha.
4 */
5
6'use strict'
7
8const writeout = require('../lib')
9const fs = require('fs')
10
11const path = require('path')
12const assert = require('assert')
13const mkdirp = require('mkdirp')
14
15let tmpDir = path.resolve(__dirname, '../tmp')
16
17describe('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/* global describe, before, it */