init
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
const { describe, it } = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
const Database = require('better-sqlite3');
|
||||
const imageClient = require('../src/services/imageClient');
|
||||
|
||||
function makeDb() {
|
||||
const db = new Database(':memory:');
|
||||
db.exec(`CREATE TABLE image_proxy_cache (
|
||||
cache_key TEXT PRIMARY KEY,
|
||||
proxy_url TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL
|
||||
)`);
|
||||
return db;
|
||||
}
|
||||
|
||||
describe('image_proxy_cache', () => {
|
||||
it('getProxyCache returns null when entry expired by expire_hours', () => {
|
||||
const db = makeDb();
|
||||
const old = new Date(Date.now() - 25 * 3600 * 1000).toISOString();
|
||||
db.prepare(
|
||||
'INSERT INTO image_proxy_cache (cache_key, proxy_url, created_at) VALUES (?, ?, ?)'
|
||||
).run('scenes/test.jpg', 'https://example.com/a.jpg', old);
|
||||
|
||||
assert.equal(imageClient.getProxyCache(db, 'scenes/test.jpg'), null);
|
||||
assert.equal(db.prepare('SELECT COUNT(*) AS c FROM image_proxy_cache').get().c, 0);
|
||||
});
|
||||
|
||||
it('getProxyCache returns url when entry still fresh', () => {
|
||||
const db = makeDb();
|
||||
imageClient.setProxyCache(db, 'scenes/fresh.jpg', 'https://example.com/fresh.jpg');
|
||||
assert.equal(imageClient.getProxyCache(db, 'scenes/fresh.jpg'), 'https://example.com/fresh.jpg');
|
||||
});
|
||||
|
||||
it('deleteProxyCache removes row', () => {
|
||||
const db = makeDb();
|
||||
imageClient.setProxyCache(db, 'k1', 'https://example.com/x.jpg');
|
||||
imageClient.deleteProxyCache(db, 'k1');
|
||||
assert.equal(imageClient.getProxyCache(db, 'k1'), null);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user