Home Reference Source Test

tests/adapters/FileAdapter.test.js

// @flow
import fs from 'fs';
import { FileAdapter } from './../../src/adapters';
import { Storage } from './../../src';

const dbFile = './tests_results/tmp.txt';
let storage: Storage;

describe('Test FileAdapter', () => {
    beforeEach(() => {
        storage = new Storage('', new FileAdapter(dbFile));
    });

    afterEach(() => {
        fs.unlinkSync(dbFile);
    });

    it('create db file', () => {
        expect(fs.existsSync(dbFile)).toBeTruthy();
    });

    it('store strings', () => {
        expect(storage.get('x')).toBeNull();
        storage.set('x', 'y');
        expect(storage.get('x')).toEqual('y');
    });

    it('store objects', () => {
        storage.set('x', { a: 'b' });
        expect(storage.get('x')).toEqual({ a: 'b' });
    });

    it('remove items', () => {
        storage.set('x', 'y');
        expect(storage.get('x')).toEqual('y');
        storage.remove('x');
        expect(storage.get('x')).toBeNull();
    });

    it('do not remove existing db file', () => {
        storage.set('x', 'y');
        const storage2 = new Storage('', new FileAdapter(dbFile));
        expect(storage2.get('x')).toEqual('y');
    });
});