Files
pulse-signage/test/weather-duplicate.test.js
T
lzstealth 3960931ebe
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m53s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 34s
Add onboarding weather and template gradients
2026-08-28 20:05:23 +01:00

50 lines
1.9 KiB
JavaScript

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>/);
});