leetcode-cli
Version:
A cli tool to enjoy leetcode!
61 lines (45 loc) • 1.36 kB
JavaScript
var execSync = require('child_process').execSync;
var assert = require('chai').assert;
var rewire = require('rewire');
var cache = rewire('../lib/cache');
var h = rewire('../lib/helper');
describe('cache', function() {
var k = '.test';
var v = {test: 'data'};
before(function() {
var cachedir = './tmp';
execSync('rm -rf ' + cachedir);
h.getCacheDir = function() {
return cachedir;
};
cache.__set__('h', h);
});
it('should ok when not cached', function() {
cache.del(k);
assert.equal(cache.get(k), null);
assert.equal(cache.del(k), false);
});
it('should ok when cached', function() {
assert.equal(cache.set(k, v), true);
assert.deepEqual(cache.get(k), v);
assert.equal(cache.del(k), true);
});
it('should list ok when no cached', function() {
var items = cache.list();
assert.equal(items.length, 0);
});
it('should list ok when cached', function() {
assert.equal(cache.set(k, v), true);
var items = cache.list();
assert.equal(items.length, 1);
assert.equal(items[0].name, k);
assert.equal(items[0].size, JSON.stringify(v).length);
});
it('should list ok when cache dir not exist', function() {
h.getCacheDir = function() {
return '/not-exist-dir';
};
var items = cache.list();
assert.equal(items.length, 0);
});
});