feat: async cache.read()/write(), remove .has()

This commit is contained in:
harttle
2020-03-05 01:47:53 +08:00
parent 65b849c02a
commit 61dac49b04
4 changed files with 26 additions and 10 deletions
+19 -1
View File
@@ -71,7 +71,6 @@ describe('LiquidOptions#cache', function () {
extname: '.html',
cache: {
read: (): Template[] | undefined => last,
has: (): boolean => !!last,
write: (key: string, value: Template[]) => { last = value }
}
})
@@ -82,6 +81,25 @@ describe('LiquidOptions#cache', function () {
expect(await engine.renderFile('files/bar')).to.equal('foo')
expect(await engine.renderFile('files/coo')).to.equal('foo')
})
it('should respect cache={} option (async)', async function () {
const cached: { [key: string]: Template[] | undefined } = {}
const engine = new Liquid({
root: '/root/',
extname: '.html',
cache: {
read: (key: string) => Promise.resolve(cached[key]),
write: (key: string, value: Template[]) => { cached[key] = value; Promise.resolve() }
}
})
mock({ '/root/files/foo.html': 'foo' })
mock({ '/root/files/bar.html': 'bar' })
mock({ '/root/files/coo.html': 'coo' })
expect(await engine.renderFile('files/foo')).to.equal('foo')
expect(await engine.renderFile('files/bar')).to.equal('bar')
expect(await engine.renderFile('files/coo')).to.equal('coo')
mock({ '/root/files/coo.html': 'COO' })
expect(await engine.renderFile('files/coo')).to.equal('coo')
})
it('should not cache not exist file', async function () {
const engine = new Liquid({
root: '/root/',