Show invalid url error on UI, add test case

This commit is contained in:
rejas 2021-03-16 13:47:48 +01:00
parent 2ec275957f
commit a269b5cd93
6 changed files with 68 additions and 9 deletions

View File

@ -66,6 +66,7 @@ Module.register("newsfeed", {
this.newsItems = [];
this.loaded = false;
this.error = null;
this.activeItem = 0;
this.scrollPosition = 0;
@ -87,8 +88,10 @@ Module.register("newsfeed", {
}
this.loaded = true;
this.error = null;
} else if (notification === "INCORRECT_URL") {
Log.error("Newsfeed Error. Incorrect url: " + payload.url);
this.error = "Newsfeed Error. Incorrect url: " + payload.url;
this.scheduleUpdateInterval();
}
},
@ -110,15 +113,20 @@ Module.register("newsfeed", {
url: this.getActiveItemURL()
};
}
if (this.error) {
return {
error: this.error
};
}
if (this.newsItems.length === 0) {
return {
loaded: false
};
}
if (this.activeItem >= this.newsItems.length) {
this.activeItem = 0;
}
const item = this.newsItems[this.activeItem];
return {

View File

@ -6,7 +6,7 @@
{{ sourceTitle }}{% if config.showPublishDate %}, {% else %}: {% endif %}
{% endif %}
{% if config.showPublishDate %}
{{ publishDate }}:
{{ publishDate }}:
{% endif %}
</div>
{% endif %}
@ -21,8 +21,12 @@
{% endif %}
</div>
</div>
{% elseif error %}
<div class="small dimmed">
{{ error }}
</div>
{% else %}
<div class="small dimmed">
{{ "LOADING" | translate | safe }}
</div>
{% endif %}
{% endif %}

View File

@ -38,7 +38,7 @@ module.exports = NodeHelper.create({
try {
new URL(url);
} catch (error) {
this.sendSocketNotification("INCORRECT_URL", { url: url });
this.sendSocketNotification("INCORRECT_URL", { url });
return;
}

View File

@ -3,8 +3,7 @@
* By Rodrigo Ramírez Norambuena https://rodrigoramirez.com
* MIT Licensed.
*/
var config = {
let config = {
port: 8080,
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],

View File

@ -0,0 +1,38 @@
/* Magic Mirror Test config newsfeed module
*
* MIT Licensed.
*/
let config = {
port: 8080,
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],
language: "en",
timeFormat: 12,
units: "metric",
electronOptions: {
webPreferences: {
nodeIntegration: true,
enableRemoteModule: true
}
},
modules: [
{
module: "newsfeed",
position: "bottom_bar",
config: {
feeds: [
{
title: "Incorrect Url",
url: "this is not a valid url"
}
]
}
}
]
};
/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") {
module.exports = config;
}

View File

@ -8,7 +8,7 @@ const afterEach = global.afterEach;
describe("Newsfeed module", function () {
helpers.setupTimeout(this);
var app = null;
let app = null;
beforeEach(function () {
return helpers
@ -29,8 +29,18 @@ describe("Newsfeed module", function () {
process.env.MM_CONFIG_FILE = "tests/configs/modules/newsfeed/default.js";
});
it("show title newsfeed", function () {
it("should show the newsfeed title", function () {
return app.client.waitUntilTextExists(".newsfeed .small", "Rodrigo Ramirez Blog", 10000).should.be.fulfilled;
});
});
describe("Invalid configuration", function () {
before(function () {
process.env.MM_CONFIG_FILE = "tests/configs/modules/newsfeed/incorrect_url.js";
});
it("should show invalid url warning", function () {
return app.client.waitUntilTextExists(".newsfeed .small", "Newsfeed Error. Incorrect url:", 10000).should.be.fulfilled;
});
});
});