Add some unit tests for Helper.expandHome

This commit is contained in:
Jérémie Astori 2017-12-07 23:33:43 -05:00
parent 52d5cb2311
commit 22237658cb
No known key found for this signature in database
GPG key ID: B9A4F245CD67BDE8
2 changed files with 41 additions and 0 deletions

View file

@ -157,6 +157,8 @@ function ip2hex(address) {
}).join("");
}
// Expand ~ into the current user home dir.
// This does *not* support `~other_user/tmp` => `/home/other_user/tmp`.
function expandHome(shortenedPath) {
if (!shortenedPath) {
return "";

39
test/src/helperTest.js Normal file
View file

@ -0,0 +1,39 @@
"use strict";
const expect = require("chai").expect;
const os = require("os");
const Helper = require("../../src/helper");
describe("Helper", function() {
describe("#expandHome", function() {
it("should correctly expand a Unix path", function() {
expect([`${os.homedir()}/tmp`, `${os.homedir()}\\tmp`])
.to.include(Helper.expandHome("~/tmp"));
});
it("should correctly expand a Windows path", function() {
expect(Helper.expandHome("~\\tmp")).to.equal(`${os.homedir()}\\tmp`);
});
it("should correctly expand when not given a specific path", function() {
expect(Helper.expandHome("~")).to.equal(os.homedir());
});
it("should not expand paths not starting with tilde", function() {
expect(Helper.expandHome("/tmp")).to.match(/^\/tmp|[A-Z]:\\tmp$/);
});
it("should not expand a tilde in the middle of a string", function() {
expect(Helper.expandHome("/tmp/~foo"))
.to.match(/^\/tmp\/~foo|[A-Z]:\\tmp\\~foo$/);
});
it("should return an empty string when given an empty string", function() {
expect(Helper.expandHome("")).to.equal("");
});
it("should return an empty string when given undefined", function() {
expect(Helper.expandHome(undefined)).to.equal("");
});
});
});