Files
SpineViewer/SpineThumbnailGenerateServer/tests/temp-cleanup.test.js
T
2026-09-21 10:06:53 +08:00

29 lines
1.1 KiB
JavaScript

'use strict';
const assert = require('node:assert/strict');
const fs = require('node:fs');
const os = require('node:os');
const path = require('node:path');
const { cleanupStaleFiles } = require('../js/library-watcher.js');
const directory = fs.mkdtempSync(path.join(os.tmpdir(), 'spine-thumb-cleanup-'));
const now = Date.now();
const old = path.join(directory, 'spine-thumb-old.webp');
const fresh = path.join(directory, 'spine-thumb-fresh.webp');
const unrelated = path.join(directory, 'other-old.webp');
try {
for (const file of [old, fresh, unrelated]) fs.writeFileSync(file, 'x');
const oldTime = new Date(now - 25 * 60 * 60 * 1000);
fs.utimesSync(old, oldTime, oldTime);
fs.utimesSync(unrelated, oldTime, oldTime);
assert.equal(cleanupStaleFiles(directory, 'spine-thumb-', 24 * 60 * 60 * 1000, now), 1);
assert.equal(fs.existsSync(old), false);
assert.equal(fs.existsSync(fresh), true);
assert.equal(fs.existsSync(unrelated), true);
console.log('PASS: 只清理超过 24 小时的本插件临时文件');
} finally {
fs.rmSync(directory, { recursive: true, force: true });
}