31 lines
1.5 KiB
JavaScript
31 lines
1.5 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const fs = require('node:fs');
|
|
const vm = require('node:vm');
|
|
const path = require('node:path');
|
|
const ImageHelpers = require('../../web/js/image-helpers.js');
|
|
|
|
test('gallery metadata requests retain root identity without including cache parameters in filenames', async () => {
|
|
const requests = [];
|
|
const context = vm.createContext({ document: { addEventListener() {} }, window: {}, console,
|
|
ImageHelpers, ApiClient: { fetchUrl: async url => {
|
|
requests.push(url);
|
|
return { ok: true, json: async () => ({ success: true, prompt: { text: url } }) };
|
|
} },
|
|
});
|
|
const Manager = vm.runInContext(fs.readFileSync(path.join(__dirname, '../../web/js/gallery.js'), 'utf8') + '\nGalleryManager;', context, { filename: path.join(__dirname, '../../web/js/gallery.js') });
|
|
const manager = Object.create(Manager.prototype);
|
|
manager.extractImageMetadata = async () => null;
|
|
manager.displayMetadata = (metadata, panel) => { panel.prompt = metadata.positivePrompt; };
|
|
for (const root of [0, 1]) {
|
|
const panel = {};
|
|
const expected = `/prompt_manager/images/prompt/sub%2Fsame.png?root=${root}`;
|
|
await manager.loadImageMetadata(`/prompt_manager/images/serve/sub/same.png?v=123&root=${root}`, panel);
|
|
assert.equal(panel.prompt, expected);
|
|
}
|
|
assert.deepEqual(requests, [
|
|
'/prompt_manager/images/prompt/sub%2Fsame.png?root=0',
|
|
'/prompt_manager/images/prompt/sub%2Fsame.png?root=1',
|
|
]);
|
|
});
|