Release v2.5.6
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
|
||||
const { buildDuplicateRssFeedName, buildDuplicateRssFeed } = require('../src/web/routes/data-sources/rss-feeds/duplicate');
|
||||
const { buildRssFeedFormViewModel } = require('../src/web/routes/data-sources/rss-feeds/form-view-model');
|
||||
|
||||
test('rss feed duplicate helper copies editable fields and resets runtime state', () => {
|
||||
const source = {
|
||||
id: 11,
|
||||
name: 'Feed A',
|
||||
feed_url: 'https://example.com/feed.xml',
|
||||
update_interval_value: 30,
|
||||
update_interval_unit: 'minutes',
|
||||
item_limit: 5,
|
||||
last_pulled_at: '2026-08-01T12:00:00.000Z',
|
||||
last_pull_error: 'Bad response'
|
||||
};
|
||||
|
||||
const duplicate = buildDuplicateRssFeed(source, buildDuplicateRssFeedName(source.name));
|
||||
|
||||
assert.equal(duplicate.id, null);
|
||||
assert.equal(duplicate.name, 'Copy of Feed A');
|
||||
assert.equal(duplicate.feed_url, 'https://example.com/feed.xml');
|
||||
assert.equal(duplicate.feedUrl, 'https://example.com/feed.xml');
|
||||
assert.equal(duplicate.updateIntervalValue, 30);
|
||||
assert.equal(duplicate.updateIntervalUnit, 'minutes');
|
||||
assert.equal(duplicate.itemLimit, 5);
|
||||
assert.equal(duplicate.lastPulledAt, null);
|
||||
assert.equal(duplicate.pullError, '');
|
||||
assert.deepEqual(duplicate.pulledItems, []);
|
||||
});
|
||||
|
||||
test('rss feed duplicate form model keeps info toast variant and secondary actions', () => {
|
||||
const model = buildRssFeedFormViewModel({ id: null, name: 'Feed A' }, 'Review the copied values and save when ready.', { permissionKeys: ['rss-feeds.create'] }, { messageVariant: 'info' }, false);
|
||||
|
||||
assert.equal(model.messageVariant, 'info');
|
||||
assert.equal(model.showSaveSecondaryActions, true);
|
||||
});
|
||||
|
||||
test('rss feed list template includes duplicate action', () => {
|
||||
const template = fs.readFileSync(path.join(__dirname, '..', 'src', 'web', 'views', 'data-sources', 'rss-feeds', 'list.hbs'), 'utf8');
|
||||
|
||||
assert.match(template, /\/data-sources\/rss-feeds\/{\{id\}\}\/duplicate/);
|
||||
assert.match(template, />Dupe<\/a>/);
|
||||
});
|
||||
Reference in New Issue
Block a user