All files file_test.ts

100% Statements 64/64
100% Branches 4/4
100% Functions 17/17
100% Lines 49/49

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 681x 1x 1x 1x 1x 1x 1x 15x   1x 1x 9x       9x 1x 1x 2x   1x 1x 1x 2x     1x 1x 1x 2x     1x 1x 1x 2x     1x 1x 1x 2x     1x 1x 2x 1x   1x 1x 2x 1x   1x 1x 2x 1x 1x   1x 1x 2x 1x 1x      
import * as path from 'path';
import * as mock from 'mock-fs';
import {rejects, strictEqual} from 'assert';
import {File} from './file';
import * as fs from 'fs-extra';
import {Path} from './path';
const cwd = process.cwd();
const here = (filename: string) => path.join(cwd, filename);
 
describe('File', () => {
  beforeEach(() =>
    mock({
      [here('hello.txt')]: 'hello world',
    })
  );
  afterEach(() => mock.restore());
  it('should write', async () => {
    const p = new File({basename: './hello.txt'});
    await p.writeFromString('meow meow');
  });
  it('should throw error if no path is passed in', async () => {
    const p = new File();
    rejects(async () => {
      await p.writeFromString('meow meow');
    });
  });
  it('should throw error during write using readonly', async () => {
    const p = new File({basename: './hello.txt', readonly: true});
    rejects(async () => {
      await p.writeFromString('meow meow');
    });
  });
  it('should throw error during create using readonly', async () => {
    const p = new File({basename: './hello.txt', readonly: true});
    rejects(async () => {
      await p.createFromString('meow meow');
    });
  });
  it('should throw error during upsert using readonly', async () => {
    const p = new File({basename: './hello.txt', readonly: true});
    rejects(async () => {
      await p.upsertFromString('meow meow');
    });
  });
  it('should copy file', async () => {
    const p = new File({basename: './hello.txt', readonly: true});
    await p.copy({basename: 'love.txt'});
    strictEqual(fs.readFileSync(here('love.txt'), 'utf8'), 'hello world');
  });
  it('should copy file from path', async () => {
    const p = new File({basename: './hello.txt', readonly: true});
    await p.copy(new Path({basename: 'love.txt'}));
    strictEqual(fs.readFileSync(here('love.txt'), 'utf8'), 'hello world');
  });
  it('should move file', async () => {
    const p = new File({basename: './hello.txt', readonly: true});
    await p.move({basename: 'love.txt'});
    strictEqual(fs.readFileSync(here('love.txt'), 'utf8'), 'hello world');
    strictEqual(fs.existsSync(here('hello.txt')), false);
  });
  it('should move file from path', async () => {
    const p = new File({basename: './hello.txt', readonly: true});
    await p.move(new Path({basename: 'love.txt'}));
    strictEqual(fs.readFileSync(here('love.txt'), 'utf8'), 'hello world');
    strictEqual(fs.existsSync(here('hello.txt')), false);
  });
});