Add onboarding weather and template gradients
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
|
||||
const { buildDuplicateWeatherLocationName, buildDuplicateWeatherLocation } = require('../src/web/routes/data-sources/weather/duplicate');
|
||||
|
||||
test('weather location duplicate helper copies settings and resets runtime state', () => {
|
||||
const location = {
|
||||
id: 7,
|
||||
name: 'London',
|
||||
location_label: 'London, UK',
|
||||
latitude: 51.5074,
|
||||
longitude: -0.1278,
|
||||
timezone: 'Europe/London',
|
||||
provider: 'open-meteo',
|
||||
temperature_unit: 'celsius',
|
||||
wind_unit: 'kmh',
|
||||
precipitation_unit: 'mm',
|
||||
update_interval_value: 30,
|
||||
update_interval_unit: 'minutes',
|
||||
last_pulled_at: '2026-08-28T10:00:00.000Z',
|
||||
last_pull_error: 'Bad response',
|
||||
last_response_status: 500,
|
||||
last_response_content_type: 'application/json',
|
||||
last_response_json: '{"ok":false}'
|
||||
};
|
||||
|
||||
const duplicate = buildDuplicateWeatherLocation(location, buildDuplicateWeatherLocationName(location.name));
|
||||
|
||||
assert.equal(duplicate.id, null);
|
||||
assert.equal(duplicate.name, 'Copy of London');
|
||||
assert.equal(duplicate.location_label, 'London, UK');
|
||||
assert.equal(duplicate.latitude, 51.5074);
|
||||
assert.equal(duplicate.longitude, -0.1278);
|
||||
assert.equal(duplicate.provider, 'open-meteo');
|
||||
assert.equal(duplicate.update_interval_value, 30);
|
||||
assert.equal(duplicate.last_pulled_at, null);
|
||||
assert.equal(duplicate.last_pull_error, '');
|
||||
assert.equal(duplicate.last_response_status, null);
|
||||
assert.equal(duplicate.last_response_json, '');
|
||||
});
|
||||
|
||||
test('weather list template includes duplicate action', () => {
|
||||
const template = fs.readFileSync(path.join(__dirname, '..', 'src', 'web', 'views', 'data-sources', 'weather', 'list.hbs'), 'utf8');
|
||||
|
||||
assert.match(template, /\/data-sources\/weather\/{\{id\}\}\/duplicate/);
|
||||
assert.match(template, />Dupe<\/a>/);
|
||||
});
|
||||
Reference in New Issue
Block a user