move default modules from /modules/default to /defaultmodules (#4019)

Since the project's inception, I've missed a clear separation between
default and third-party modules.

This increases complexity within the project (exclude `modules`, but not
`modules/default`), but the mixed use is particularly problematic in
Docker setups.

Therefore, with this pull request, I'm moving the default modules to a
different directory.

~~I've chosen `default/modules`, but I'm not bothered about it;
`defaultmodules` or something similar would work just as well.~~

Changed to `defaultmodules`.

Let me know if there's a majority in favor of this change.
This commit is contained in:
Karsten Hassel
2026-01-27 08:37:52 +01:00
committed by GitHub
parent 5e0cd28980
commit d44db6ea10
113 changed files with 59 additions and 40 deletions
@@ -1,6 +1,8 @@
global.moment = require("moment-timezone");
const CalendarFetcherUtils = require("../../../../../modules/default/calendar/calendarfetcherutils");
const defaults = require("../../../js/defaults");
const CalendarFetcherUtils = require(`../../../../../${defaults.defaultModulesDir}/calendar/calendarfetcherutils`);
describe("Calendar fetcher utils test", () => {
const defaultConfig = {
@@ -2,7 +2,9 @@ global.moment = require("moment-timezone");
const ical = require("node-ical");
const moment = require("moment-timezone");
const CalendarFetcherUtils = require("../../../../../modules/default/calendar/calendarfetcherutils");
const defaults = require("../../../../../js/defaults");
const CalendarFetcherUtils = require(`../../../../../${defaults.defaultModulesDir}/calendar/calendarfetcherutils`);
describe("Calendar fetcher utils test", () => {
const defaultConfig = {
@@ -1,6 +1,8 @@
global.moment = require("moment");
const CalendarUtils = require("../../../../../modules/default/calendar/calendarutils");
const defaults = require("../../../../../js/defaults");
const CalendarUtils = require(`../../../../../${defaults.defaultModulesDir}/calendar/calendarutils`);
describe("Calendar utils tests", () => {
describe("capFirst", () => {
@@ -16,12 +16,13 @@ describe("Compliments module", () => {
global.Cron = vi.fn();
// Load the module
require("../../../../../modules/default/compliments/compliments");
const defaults = require("../../../../../js/defaults");
require(`../../../../../${defaults.defaultModulesDir}/compliments/compliments`);
// Setup module instance
complimentsModule.config = { ...complimentsModule.defaults };
complimentsModule.name = "compliments";
complimentsModule.file = vi.fn((path) => `http://localhost:8080/modules/default/compliments/${path}`);
complimentsModule.file = vi.fn((path) => `http://localhost:8080/${defaults.defaultModulesDir}/compliments/${path}`);
});
afterEach(() => {
@@ -144,7 +145,7 @@ describe("Compliments module", () => {
await complimentsModule.loadComplimentFile();
const calledUrl = fetch.mock.calls[0][0];
expect(calledUrl).toBe("http://localhost:8080/modules/default/compliments/compliments.json");
expect(calledUrl).toBe("http://localhost:8080/defaultmodules/compliments/compliments.json");
expect(calledUrl).not.toContain("dummy=");
});
});
+3 -1
View File
@@ -1,5 +1,7 @@
global.moment = require("moment-timezone");
const { performWebRequest, formatTime } = require("../../../../modules/default/utils");
const defaults = require("../../../../js/defaults");
const { performWebRequest, formatTime } = require(`../../../../${defaults.defaultModulesDir}/utils`);
describe("Default modules utils tests", () => {
describe("performWebRequest", () => {
@@ -1,4 +1,6 @@
const WeatherObject = require("../../../../../modules/default/weather/weatherobject");
const defaults = require("../../../../../js/defaults");
const WeatherObject = require(`../../../../../${defaults.defaultModulesDir}/weather/weatherobject`);
global.moment = require("moment-timezone");
global.SunCalc = require("suncalc");
@@ -1,5 +1,7 @@
const weather = require("../../../../../modules/default/weather/weatherutils");
const WeatherUtils = require("../../../../../modules/default/weather/weatherutils");
const defaults = require("../../../../../js/defaults");
const weather = require(`../../../../../${defaults.defaultModulesDir}/weather/weatherutils`);
const WeatherUtils = require(`../../../../../${defaults.defaultModulesDir}/weather/weatherutils`);
describe("Weather utils tests", () => {
describe("temperature conversion to imperial", () => {