mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-06-27 11:50:00 +00:00
Merge pull request #970 from QNimbus/unittest-calendar
Add new unit tests
This commit is contained in:
commit
4772fbcd4a
@ -10,7 +10,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|||||||
- Add `clientonly` script to start only the electron client for a remote server.
|
- Add `clientonly` script to start only the electron client for a remote server.
|
||||||
- Add symbol and color properties of event when `CALENDAR_EVENTS` notification is broadcasted from `default/calendar` module.
|
- Add symbol and color properties of event when `CALENDAR_EVENTS` notification is broadcasted from `default/calendar` module.
|
||||||
- Add `.vscode/` folder to `.gitignore` to keep custom Visual Studio Code config out of git.
|
- Add `.vscode/` folder to `.gitignore` to keep custom Visual Studio Code config out of git.
|
||||||
- Add unit test the capitalizeFirstLetter function of newfeed module
|
- Add unit test the capitalizeFirstLetter function of newfeed module.
|
||||||
|
- Add new unit tests for function `shorten` in calendar module.
|
||||||
|
|
||||||
### Updated
|
### Updated
|
||||||
- Changed 'default.js' - listen on all attached interfaces by default.
|
- Changed 'default.js' - listen on all attached interfaces by default.
|
||||||
|
@ -424,25 +424,27 @@ Module.register("calendar", {
|
|||||||
return defaultValue;
|
return defaultValue;
|
||||||
},
|
},
|
||||||
|
|
||||||
/* shorten(string, maxLength)
|
/**
|
||||||
* Shortens a string if it's longer than maxLength.
|
* Shortens a string if it's longer than maxLength and add a ellipsis to the end
|
||||||
* Adds an ellipsis to the end.
|
|
||||||
*
|
*
|
||||||
* argument string string - The string to shorten.
|
* @param {string} string Text string to shorten
|
||||||
* argument maxLength number - The max length of the string.
|
* @param {number} maxLength The max length of the string
|
||||||
* argument wrapEvents - Wrap the text after the line has reached maxLength
|
* @param {boolean} wrapEvents Wrap the text after the line has reached maxLength
|
||||||
*
|
* @returns {string} The shortened string
|
||||||
* return string - The shortened string.
|
|
||||||
*/
|
*/
|
||||||
shorten: function (string, maxLength, wrapEvents) {
|
shorten: function (string, maxLength, wrapEvents) {
|
||||||
if (wrapEvents) {
|
if (typeof string !== "string") {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (wrapEvents === true) {
|
||||||
var temp = "";
|
var temp = "";
|
||||||
var currentLine = "";
|
var currentLine = "";
|
||||||
var words = string.split(" ");
|
var words = string.split(" ");
|
||||||
|
|
||||||
for (var i = 0; i < words.length; i++) {
|
for (var i = 0; i < words.length; i++) {
|
||||||
var word = words[i];
|
var word = words[i];
|
||||||
if (currentLine.length + word.length < 25 - 1) { // max - 1 to account for a space
|
if (currentLine.length + word.length < (typeof maxLength === "number" ? maxLength : 25) - 1) { // max - 1 to account for a space
|
||||||
currentLine += (word + " ");
|
currentLine += (word + " ");
|
||||||
} else {
|
} else {
|
||||||
if (currentLine.length > 0) {
|
if (currentLine.length > 0) {
|
||||||
@ -454,12 +456,12 @@ Module.register("calendar", {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return temp + currentLine;
|
return (temp + currentLine).trim();
|
||||||
} else {
|
} else {
|
||||||
if (string.length > maxLength) {
|
if (maxLength && typeof maxLength === "number" && string.length > maxLength) {
|
||||||
return string.slice(0, maxLength) + "…";
|
return string.trim().slice(0, maxLength) + "…";
|
||||||
} else {
|
} else {
|
||||||
return string;
|
return string.trim();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -29,10 +29,47 @@ describe("Functions into modules/default/calendar/calendar.js", function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Object.keys(words).forEach(word => {
|
Object.keys(words).forEach(word => {
|
||||||
it(`for ${word} should return ${words[word]}`, function() {
|
it(`for '${word}' should return '${words[word]}'`, function() {
|
||||||
expect(Module.definitions.calendar.capFirst(word)).to.equal(words[word]);
|
expect(Module.definitions.calendar.capFirst(word)).to.equal(words[word]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("shorten", function() {
|
||||||
|
strings = {
|
||||||
|
" String with whitespace at the beginning that needs trimming" : { length: 16, return: "String with whit…" },
|
||||||
|
"long string that needs shortening": { length: 16, return: "long string that…" },
|
||||||
|
"short string": { length: 16, return: "short string" },
|
||||||
|
"long string with no maxLength defined": { return: "long string with no maxLength defined" },
|
||||||
|
};
|
||||||
|
|
||||||
|
Object.keys(strings).forEach(string => {
|
||||||
|
it(`for '${string}' should return '${strings[string].return}'`, function() {
|
||||||
|
expect(Module.definitions.calendar.shorten(string, strings[string].length)).to.equal(strings[string].return);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should return an empty string if shorten is called with a non-string", function () {
|
||||||
|
expect(Module.definitions.calendar.shorten(100)).to.equal("");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should not shorten the string if shorten is called with a non-number maxLength", function () {
|
||||||
|
expect(Module.definitions.calendar.shorten("This is a test string", "This is not a number")).to.equal("This is a test string");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should wrap the string instead of shorten it if shorten is called with wrapEvents = true (with maxLength defined as 20)", function () {
|
||||||
|
expect(Module.definitions.calendar.shorten(
|
||||||
|
"This is a wrapEvent test. Should wrap the string instead of shorten it if called with wrapEvent = true",
|
||||||
|
20,
|
||||||
|
true)).to.equal("This is a <br>wrapEvent test. Should wrap <br>the string instead of <br>shorten it if called with <br>wrapEvent = true");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should wrap the string instead of shorten it if shorten is called with wrapEvents = true (without maxLength defined, default 25)", function () {
|
||||||
|
expect(Module.definitions.calendar.shorten(
|
||||||
|
"This is a wrapEvent test. Should wrap the string instead of shorten it if called with wrapEvent = true",
|
||||||
|
undefined,
|
||||||
|
true)).to.equal("This is a wrapEvent <br>test. Should wrap the string <br>instead of shorten it if called <br>with wrapEvent = true");
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user