mirror of
https://github.com/shlinkio/shlink-web-client.git
synced 2025-01-10 02:07:26 +03:00
First replacements of sinon mocks with jest mocks
This commit is contained in:
parent
2cd6e52e9c
commit
f8de069567
11 changed files with 666 additions and 127 deletions
531
package-lock.json
generated
531
package-lock.json
generated
|
@ -4296,6 +4296,7 @@
|
||||||
"anymatch": "^2.0.0",
|
"anymatch": "^2.0.0",
|
||||||
"async-each": "^1.0.0",
|
"async-each": "^1.0.0",
|
||||||
"braces": "^2.3.0",
|
"braces": "^2.3.0",
|
||||||
|
"fsevents": "^1.2.2",
|
||||||
"glob-parent": "^3.1.0",
|
"glob-parent": "^3.1.0",
|
||||||
"inherits": "^2.0.1",
|
"inherits": "^2.0.1",
|
||||||
"is-binary-path": "^1.0.0",
|
"is-binary-path": "^1.0.0",
|
||||||
|
@ -7042,6 +7043,535 @@
|
||||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"fsevents": {
|
||||||
|
"version": "1.2.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.8.tgz",
|
||||||
|
"integrity": "sha512-tPvHgPGB7m40CZ68xqFGkKuzN+RnpGmSV+hgeKxhRpbxdqKXUFJGC3yonBOLzQBcJyGpdZFDfCsdOC2KFsXzeA==",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"nan": "^2.12.1",
|
||||||
|
"node-pre-gyp": "^0.12.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"abbrev": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"ansi-regex": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"aproba": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"are-we-there-yet": {
|
||||||
|
"version": "1.1.5",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"delegates": "^1.0.0",
|
||||||
|
"readable-stream": "^2.0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"balanced-match": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"brace-expansion": {
|
||||||
|
"version": "1.1.11",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"balanced-match": "^1.0.0",
|
||||||
|
"concat-map": "0.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chownr": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"code-point-at": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"concat-map": {
|
||||||
|
"version": "0.0.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"console-control-strings": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"core-util-is": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"ms": "^2.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"deep-extend": {
|
||||||
|
"version": "0.6.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"delegates": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"detect-libc": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"fs-minipass": {
|
||||||
|
"version": "1.2.5",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"minipass": "^2.2.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fs.realpath": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"gauge": {
|
||||||
|
"version": "2.7.4",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"aproba": "^1.0.3",
|
||||||
|
"console-control-strings": "^1.0.0",
|
||||||
|
"has-unicode": "^2.0.0",
|
||||||
|
"object-assign": "^4.1.0",
|
||||||
|
"signal-exit": "^3.0.0",
|
||||||
|
"string-width": "^1.0.1",
|
||||||
|
"strip-ansi": "^3.0.1",
|
||||||
|
"wide-align": "^1.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"glob": {
|
||||||
|
"version": "7.1.3",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"fs.realpath": "^1.0.0",
|
||||||
|
"inflight": "^1.0.4",
|
||||||
|
"inherits": "2",
|
||||||
|
"minimatch": "^3.0.4",
|
||||||
|
"once": "^1.3.0",
|
||||||
|
"path-is-absolute": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"has-unicode": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"iconv-lite": {
|
||||||
|
"version": "0.4.24",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"safer-buffer": ">= 2.1.2 < 3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ignore-walk": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"minimatch": "^3.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inflight": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"once": "^1.3.0",
|
||||||
|
"wrappy": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inherits": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"ini": {
|
||||||
|
"version": "1.3.5",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"is-fullwidth-code-point": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"number-is-nan": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"isarray": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"minimatch": {
|
||||||
|
"version": "3.0.4",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"brace-expansion": "^1.1.7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minimist": {
|
||||||
|
"version": "0.0.8",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"minipass": {
|
||||||
|
"version": "2.3.5",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"safe-buffer": "^5.1.2",
|
||||||
|
"yallist": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"minizlib": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"minipass": "^2.2.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mkdirp": {
|
||||||
|
"version": "0.5.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"minimist": "0.0.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"needle": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"debug": "^4.1.0",
|
||||||
|
"iconv-lite": "^0.4.4",
|
||||||
|
"sax": "^1.2.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node-pre-gyp": {
|
||||||
|
"version": "0.12.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"detect-libc": "^1.0.2",
|
||||||
|
"mkdirp": "^0.5.1",
|
||||||
|
"needle": "^2.2.1",
|
||||||
|
"nopt": "^4.0.1",
|
||||||
|
"npm-packlist": "^1.1.6",
|
||||||
|
"npmlog": "^4.0.2",
|
||||||
|
"rc": "^1.2.7",
|
||||||
|
"rimraf": "^2.6.1",
|
||||||
|
"semver": "^5.3.0",
|
||||||
|
"tar": "^4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nopt": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"abbrev": "1",
|
||||||
|
"osenv": "^0.1.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"npm-bundled": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"npm-packlist": {
|
||||||
|
"version": "1.4.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"ignore-walk": "^3.0.1",
|
||||||
|
"npm-bundled": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"npmlog": {
|
||||||
|
"version": "4.1.2",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"are-we-there-yet": "~1.1.2",
|
||||||
|
"console-control-strings": "~1.1.0",
|
||||||
|
"gauge": "~2.7.3",
|
||||||
|
"set-blocking": "~2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"number-is-nan": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"object-assign": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"once": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"wrappy": "1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"os-homedir": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"os-tmpdir": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"osenv": {
|
||||||
|
"version": "0.1.5",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"os-homedir": "^1.0.0",
|
||||||
|
"os-tmpdir": "^1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"path-is-absolute": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"process-nextick-args": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"rc": {
|
||||||
|
"version": "1.2.8",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"deep-extend": "^0.6.0",
|
||||||
|
"ini": "~1.3.0",
|
||||||
|
"minimist": "^1.2.0",
|
||||||
|
"strip-json-comments": "~2.0.1"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"minimist": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"readable-stream": {
|
||||||
|
"version": "2.3.6",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"core-util-is": "~1.0.0",
|
||||||
|
"inherits": "~2.0.3",
|
||||||
|
"isarray": "~1.0.0",
|
||||||
|
"process-nextick-args": "~2.0.0",
|
||||||
|
"safe-buffer": "~5.1.1",
|
||||||
|
"string_decoder": "~1.1.1",
|
||||||
|
"util-deprecate": "~1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rimraf": {
|
||||||
|
"version": "2.6.3",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"glob": "^7.1.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"safe-buffer": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"safer-buffer": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"sax": {
|
||||||
|
"version": "1.2.4",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"semver": {
|
||||||
|
"version": "5.7.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"set-blocking": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"signal-exit": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"string-width": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"code-point-at": "^1.0.0",
|
||||||
|
"is-fullwidth-code-point": "^1.0.0",
|
||||||
|
"strip-ansi": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"string_decoder": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"safe-buffer": "~5.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"strip-ansi": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-regex": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"strip-json-comments": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"tar": {
|
||||||
|
"version": "4.4.8",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"chownr": "^1.1.1",
|
||||||
|
"fs-minipass": "^1.2.5",
|
||||||
|
"minipass": "^2.3.4",
|
||||||
|
"minizlib": "^1.1.1",
|
||||||
|
"mkdirp": "^0.5.0",
|
||||||
|
"safe-buffer": "^5.1.2",
|
||||||
|
"yallist": "^3.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"util-deprecate": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"wide-align": {
|
||||||
|
"version": "1.1.3",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"string-width": "^1.0.2 || 2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wrappy": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"yallist": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"bundled": true,
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"fstream": {
|
"fstream": {
|
||||||
"version": "1.0.11",
|
"version": "1.0.11",
|
||||||
"resolved": "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz",
|
"resolved": "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz",
|
||||||
|
@ -14185,6 +14715,7 @@
|
||||||
"capture-exit": "^1.2.0",
|
"capture-exit": "^1.2.0",
|
||||||
"exec-sh": "^0.2.0",
|
"exec-sh": "^0.2.0",
|
||||||
"fb-watchman": "^2.0.0",
|
"fb-watchman": "^2.0.0",
|
||||||
|
"fsevents": "^1.2.3",
|
||||||
"micromatch": "^3.1.4",
|
"micromatch": "^3.1.4",
|
||||||
"minimist": "^1.1.1",
|
"minimist": "^1.1.1",
|
||||||
"walker": "~1.0.5",
|
"walker": "~1.0.5",
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import { shallow } from 'enzyme';
|
import { shallow } from 'enzyme';
|
||||||
import { values } from 'ramda';
|
import { values } from 'ramda';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import * as sinon from 'sinon';
|
|
||||||
import Home from '../../src/common/Home';
|
import Home from '../../src/common/Home';
|
||||||
|
|
||||||
describe('<Home />', () => {
|
describe('<Home />', () => {
|
||||||
|
@ -28,11 +27,11 @@ describe('<Home />', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('resets selected server when mounted', () => {
|
it('resets selected server when mounted', () => {
|
||||||
const resetSelectedServer = sinon.spy();
|
const resetSelectedServer = jest.fn();
|
||||||
|
|
||||||
expect(resetSelectedServer.called).toEqual(false);
|
expect(resetSelectedServer).not.toHaveBeenCalled();
|
||||||
createComponent({ resetSelectedServer });
|
createComponent({ resetSelectedServer });
|
||||||
expect(resetSelectedServer.called).toEqual(true);
|
expect(resetSelectedServer).toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('shows link to create server when no servers exist', () => {
|
it('shows link to create server when no servers exist', () => {
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { shallow } from 'enzyme';
|
import { shallow } from 'enzyme';
|
||||||
import * as sinon from 'sinon';
|
|
||||||
import createScrollToTop from '../../src/common/ScrollToTop';
|
import createScrollToTop from '../../src/common/ScrollToTop';
|
||||||
|
|
||||||
describe('<ScrollToTop />', () => {
|
describe('<ScrollToTop />', () => {
|
||||||
let wrapper;
|
let wrapper;
|
||||||
const window = {
|
const window = {
|
||||||
scrollTo: sinon.spy(),
|
scrollTo: jest.fn(),
|
||||||
};
|
};
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
@ -17,13 +16,13 @@ describe('<ScrollToTop />', () => {
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
wrapper.unmount();
|
wrapper.unmount();
|
||||||
window.scrollTo.resetHistory();
|
window.scrollTo.mockReset();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('just renders children', () => expect(wrapper.text()).toEqual('Foobar'));
|
it('just renders children', () => expect(wrapper.text()).toEqual('Foobar'));
|
||||||
|
|
||||||
it('scrolls to top when location changes', () => {
|
it('scrolls to top when location changes', () => {
|
||||||
wrapper.instance().componentDidUpdate({ location: { href: 'bar' } });
|
wrapper.instance().componentDidUpdate({ location: { href: 'bar' } });
|
||||||
expect(window.scrollTo.calledOnce).toEqual(true);
|
expect(window.scrollTo).toHaveBeenCalledTimes(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,20 +1,18 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { shallow } from 'enzyme';
|
import { shallow } from 'enzyme';
|
||||||
import { identity } from 'ramda';
|
import { identity } from 'ramda';
|
||||||
import sinon from 'sinon';
|
|
||||||
import createServerConstruct from '../../src/servers/CreateServer';
|
import createServerConstruct from '../../src/servers/CreateServer';
|
||||||
|
|
||||||
describe('<CreateServer />', () => {
|
describe('<CreateServer />', () => {
|
||||||
let wrapper;
|
let wrapper;
|
||||||
const ImportServersBtn = () => '';
|
const ImportServersBtn = () => '';
|
||||||
const createServerMock = sinon.fake();
|
const createServerMock = jest.fn();
|
||||||
const historyMock = {
|
const historyMock = {
|
||||||
push: sinon.fake(),
|
push: jest.fn(),
|
||||||
};
|
};
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
createServerMock.resetHistory();
|
createServerMock.mockReset();
|
||||||
historyMock.push.resetHistory();
|
|
||||||
|
|
||||||
const CreateServer = createServerConstruct(ImportServersBtn);
|
const CreateServer = createServerConstruct(ImportServersBtn);
|
||||||
|
|
||||||
|
@ -44,8 +42,8 @@ describe('<CreateServer />', () => {
|
||||||
return '';
|
return '';
|
||||||
} });
|
} });
|
||||||
|
|
||||||
expect(createServerMock.callCount).toEqual(1);
|
expect(createServerMock).toHaveBeenCalledTimes(1);
|
||||||
expect(historyMock.push.callCount).toEqual(1);
|
expect(historyMock.push).toHaveBeenCalledTimes(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('updates state when inputs are changed', () => {
|
it('updates state when inputs are changed', () => {
|
||||||
|
|
|
@ -1,20 +1,19 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { shallow } from 'enzyme';
|
import { shallow } from 'enzyme';
|
||||||
import sinon from 'sinon';
|
|
||||||
import { Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap';
|
import { Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap';
|
||||||
import DeleteServerModal from '../../src/servers/DeleteServerModal';
|
import DeleteServerModal from '../../src/servers/DeleteServerModal';
|
||||||
|
|
||||||
describe('<DeleteServerModal />', () => {
|
describe('<DeleteServerModal />', () => {
|
||||||
let wrapper;
|
let wrapper;
|
||||||
const deleteServerMock = sinon.fake();
|
const deleteServerMock = jest.fn();
|
||||||
const historyMock = { push: sinon.fake() };
|
const historyMock = { push: jest.fn() };
|
||||||
const toggleMock = sinon.fake();
|
const toggleMock = jest.fn();
|
||||||
const serverName = 'the_server_name';
|
const serverName = 'the_server_name';
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
toggleMock.resetHistory();
|
deleteServerMock.mockReset();
|
||||||
deleteServerMock.resetHistory();
|
toggleMock.mockReset();
|
||||||
historyMock.push.resetHistory();
|
historyMock.push.mockReset();
|
||||||
|
|
||||||
wrapper = shallow(
|
wrapper = shallow(
|
||||||
<DeleteServerModal
|
<DeleteServerModal
|
||||||
|
@ -48,9 +47,9 @@ describe('<DeleteServerModal />', () => {
|
||||||
|
|
||||||
cancelBtn.simulate('click');
|
cancelBtn.simulate('click');
|
||||||
|
|
||||||
expect(toggleMock.callCount).toEqual(1);
|
expect(toggleMock).toHaveBeenCalledTimes(1);
|
||||||
expect(deleteServerMock.callCount).toEqual(0);
|
expect(deleteServerMock).not.toHaveBeenCalled();
|
||||||
expect(historyMock.push.callCount).toEqual(0);
|
expect(historyMock.push).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('deletes server when clicking accept button', () => {
|
it('deletes server when clicking accept button', () => {
|
||||||
|
@ -58,8 +57,8 @@ describe('<DeleteServerModal />', () => {
|
||||||
|
|
||||||
acceptBtn.simulate('click');
|
acceptBtn.simulate('click');
|
||||||
|
|
||||||
expect(toggleMock.callCount).toEqual(1);
|
expect(toggleMock).toHaveBeenCalledTimes(1);
|
||||||
expect(deleteServerMock.callCount).toEqual(1);
|
expect(deleteServerMock).toHaveBeenCalledTimes(1);
|
||||||
expect(historyMock.push.callCount).toEqual(1);
|
expect(historyMock.push).toHaveBeenCalledTimes(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,25 +1,24 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import sinon from 'sinon';
|
|
||||||
import { shallow } from 'enzyme';
|
import { shallow } from 'enzyme';
|
||||||
import { UncontrolledTooltip } from 'reactstrap';
|
import { UncontrolledTooltip } from 'reactstrap';
|
||||||
import importServersBtnConstruct from '../../../src/servers/helpers/ImportServersBtn';
|
import importServersBtnConstruct from '../../../src/servers/helpers/ImportServersBtn';
|
||||||
|
|
||||||
describe('<ImportServersBtn />', () => {
|
describe('<ImportServersBtn />', () => {
|
||||||
let wrapper;
|
let wrapper;
|
||||||
const onImportMock = sinon.fake();
|
const onImportMock = jest.fn();
|
||||||
const createServersMock = sinon.fake();
|
const createServersMock = jest.fn();
|
||||||
const serversImporterMock = {
|
const serversImporterMock = {
|
||||||
importServersFromFile: sinon.fake.returns(Promise.resolve([])),
|
importServersFromFile: jest.fn().mockResolvedValue([]),
|
||||||
};
|
};
|
||||||
const fileRef = {
|
const fileRef = {
|
||||||
current: { click: sinon.fake() },
|
current: { click: jest.fn() },
|
||||||
};
|
};
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
onImportMock.resetHistory();
|
onImportMock.mockReset();
|
||||||
createServersMock.resetHistory();
|
createServersMock.mockReset();
|
||||||
serversImporterMock.importServersFromFile.resetHistory();
|
serversImporterMock.importServersFromFile.mockClear();
|
||||||
fileRef.current.click.resetHistory();
|
fileRef.current.click.mockReset();
|
||||||
|
|
||||||
const ImportServersBtn = importServersBtnConstruct(serversImporterMock);
|
const ImportServersBtn = importServersBtnConstruct(serversImporterMock);
|
||||||
|
|
||||||
|
@ -40,7 +39,7 @@ describe('<ImportServersBtn />', () => {
|
||||||
|
|
||||||
btn.simulate('click');
|
btn.simulate('click');
|
||||||
|
|
||||||
expect(fileRef.current.click.callCount).toEqual(1);
|
expect(fileRef.current.click).toHaveBeenCalledTimes(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('imports servers when file input changes', (done) => {
|
it('imports servers when file input changes', (done) => {
|
||||||
|
@ -49,9 +48,9 @@ describe('<ImportServersBtn />', () => {
|
||||||
file.simulate('change', { target: { files: [ '' ] } });
|
file.simulate('change', { target: { files: [ '' ] } });
|
||||||
|
|
||||||
setImmediate(() => {
|
setImmediate(() => {
|
||||||
expect(serversImporterMock.importServersFromFile.callCount).toEqual(1);
|
expect(serversImporterMock.importServersFromFile).toHaveBeenCalledTimes(1);
|
||||||
expect(createServersMock.callCount).toEqual(1);
|
expect(createServersMock).toHaveBeenCalledTimes(1);
|
||||||
expect(onImportMock.callCount).toEqual(1);
|
expect(onImportMock).toHaveBeenCalledTimes(1);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import * as sinon from 'sinon';
|
|
||||||
import reducer, {
|
import reducer, {
|
||||||
selectServer,
|
selectServer,
|
||||||
resetSelectedServer,
|
resetSelectedServer,
|
||||||
|
@ -31,31 +30,35 @@ describe('selectedServerReducer', () => {
|
||||||
id: serverId,
|
id: serverId,
|
||||||
};
|
};
|
||||||
const ServersServiceMock = {
|
const ServersServiceMock = {
|
||||||
findServerById: sinon.fake.returns(selectedServer),
|
findServerById: jest.fn(() => selectedServer),
|
||||||
};
|
};
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
ServersServiceMock.findServerById.resetHistory();
|
ServersServiceMock.findServerById.mockClear();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('dispatches proper actions', () => {
|
it('dispatches proper actions', () => {
|
||||||
const dispatch = sinon.spy();
|
const dispatch = jest.fn();
|
||||||
const expectedDispatchCalls = 2;
|
const expectedDispatchCalls = 2;
|
||||||
|
|
||||||
selectServer(ServersServiceMock)(serverId)(dispatch);
|
selectServer(ServersServiceMock)(serverId)(dispatch);
|
||||||
|
|
||||||
expect(dispatch.callCount).toEqual(expectedDispatchCalls);
|
const [ firstCallArgs, secondCallArgs ] = dispatch.mock.calls;
|
||||||
expect(dispatch.firstCall.calledWith({ type: RESET_SHORT_URL_PARAMS })).toEqual(true);
|
|
||||||
expect(dispatch.secondCall.calledWith({
|
expect(dispatch).toHaveBeenCalledTimes(expectedDispatchCalls);
|
||||||
|
expect(firstCallArgs).toEqual([{ type: RESET_SHORT_URL_PARAMS }]);
|
||||||
|
expect(secondCallArgs).toEqual([
|
||||||
|
{
|
||||||
type: SELECT_SERVER,
|
type: SELECT_SERVER,
|
||||||
selectedServer,
|
selectedServer,
|
||||||
})).toEqual(true);
|
},
|
||||||
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('invokes dependencies', () => {
|
it('invokes dependencies', () => {
|
||||||
selectServer(ServersServiceMock)(serverId)(() => {});
|
selectServer(ServersServiceMock)(serverId)(() => {});
|
||||||
|
|
||||||
expect(ServersServiceMock.findServerById.callCount).toEqual(1);
|
expect(ServersServiceMock.findServerById).toHaveBeenCalledTimes(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import * as sinon from 'sinon';
|
|
||||||
import { values } from 'ramda';
|
import { values } from 'ramda';
|
||||||
import reducer, {
|
import reducer, {
|
||||||
createServer,
|
createServer,
|
||||||
|
@ -15,10 +14,10 @@ describe('serverReducer', () => {
|
||||||
};
|
};
|
||||||
const expectedFetchServersResult = { type: FETCH_SERVERS, payload };
|
const expectedFetchServersResult = { type: FETCH_SERVERS, payload };
|
||||||
const ServersServiceMock = {
|
const ServersServiceMock = {
|
||||||
listServers: sinon.fake.returns(payload),
|
listServers: jest.fn(() => payload),
|
||||||
createServer: sinon.fake(),
|
createServer: jest.fn(),
|
||||||
deleteServer: sinon.fake(),
|
deleteServer: jest.fn(),
|
||||||
createServers: sinon.fake(),
|
createServers: jest.fn(),
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('reducer', () => {
|
describe('reducer', () => {
|
||||||
|
@ -28,10 +27,10 @@ describe('serverReducer', () => {
|
||||||
|
|
||||||
describe('action creators', () => {
|
describe('action creators', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
ServersServiceMock.listServers.resetHistory();
|
ServersServiceMock.listServers.mockClear();
|
||||||
ServersServiceMock.createServer.resetHistory();
|
ServersServiceMock.createServer.mockReset();
|
||||||
ServersServiceMock.deleteServer.resetHistory();
|
ServersServiceMock.deleteServer.mockReset();
|
||||||
ServersServiceMock.createServers.resetHistory();
|
ServersServiceMock.createServers.mockReset();
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('listServers', () => {
|
describe('listServers', () => {
|
||||||
|
@ -39,10 +38,10 @@ describe('serverReducer', () => {
|
||||||
const result = listServers(ServersServiceMock)();
|
const result = listServers(ServersServiceMock)();
|
||||||
|
|
||||||
expect(result).toEqual(expectedFetchServersResult);
|
expect(result).toEqual(expectedFetchServersResult);
|
||||||
expect(ServersServiceMock.listServers.calledOnce).toEqual(true);
|
expect(ServersServiceMock.listServers).toHaveBeenCalledTimes(1);
|
||||||
expect(ServersServiceMock.createServer.called).toEqual(false);
|
expect(ServersServiceMock.createServer).not.toHaveBeenCalled();
|
||||||
expect(ServersServiceMock.deleteServer.called).toEqual(false);
|
expect(ServersServiceMock.deleteServer).not.toHaveBeenCalled();
|
||||||
expect(ServersServiceMock.createServers.called).toEqual(false);
|
expect(ServersServiceMock.createServers).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -52,11 +51,11 @@ describe('serverReducer', () => {
|
||||||
const result = createServer(ServersServiceMock, () => expectedFetchServersResult)(serverToCreate);
|
const result = createServer(ServersServiceMock, () => expectedFetchServersResult)(serverToCreate);
|
||||||
|
|
||||||
expect(result).toEqual(expectedFetchServersResult);
|
expect(result).toEqual(expectedFetchServersResult);
|
||||||
expect(ServersServiceMock.createServer.calledOnce).toEqual(true);
|
expect(ServersServiceMock.createServer).toHaveBeenCalledTimes(1);
|
||||||
expect(ServersServiceMock.createServer.firstCall.calledWith(serverToCreate)).toEqual(true);
|
expect(ServersServiceMock.createServer.mock.calls[0]).toEqual([ serverToCreate ]);
|
||||||
expect(ServersServiceMock.listServers.called).toEqual(false);
|
expect(ServersServiceMock.listServers).not.toHaveBeenCalled();
|
||||||
expect(ServersServiceMock.deleteServer.called).toEqual(false);
|
expect(ServersServiceMock.deleteServer).not.toHaveBeenCalled();
|
||||||
expect(ServersServiceMock.createServers.called).toEqual(false);
|
expect(ServersServiceMock.createServers).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -66,11 +65,11 @@ describe('serverReducer', () => {
|
||||||
const result = deleteServer(ServersServiceMock, () => expectedFetchServersResult)(serverToDelete);
|
const result = deleteServer(ServersServiceMock, () => expectedFetchServersResult)(serverToDelete);
|
||||||
|
|
||||||
expect(result).toEqual(expectedFetchServersResult);
|
expect(result).toEqual(expectedFetchServersResult);
|
||||||
expect(ServersServiceMock.listServers.called).toEqual(false);
|
expect(ServersServiceMock.listServers).not.toHaveBeenCalled();
|
||||||
expect(ServersServiceMock.createServer.called).toEqual(false);
|
expect(ServersServiceMock.createServer).not.toHaveBeenCalled();
|
||||||
expect(ServersServiceMock.createServers.called).toEqual(false);
|
expect(ServersServiceMock.createServers).not.toHaveBeenCalled();
|
||||||
expect(ServersServiceMock.deleteServer.calledOnce).toEqual(true);
|
expect(ServersServiceMock.deleteServer).toHaveBeenCalledTimes(1);
|
||||||
expect(ServersServiceMock.deleteServer.firstCall.calledWith(serverToDelete)).toEqual(true);
|
expect(ServersServiceMock.deleteServer.mock.calls[0]).toEqual([ serverToDelete ]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -80,11 +79,11 @@ describe('serverReducer', () => {
|
||||||
const result = createServers(ServersServiceMock, () => expectedFetchServersResult)(serversToCreate);
|
const result = createServers(ServersServiceMock, () => expectedFetchServersResult)(serversToCreate);
|
||||||
|
|
||||||
expect(result).toEqual(expectedFetchServersResult);
|
expect(result).toEqual(expectedFetchServersResult);
|
||||||
expect(ServersServiceMock.listServers.called).toEqual(false);
|
expect(ServersServiceMock.listServers).not.toHaveBeenCalled();
|
||||||
expect(ServersServiceMock.createServer.called).toEqual(false);
|
expect(ServersServiceMock.createServer).not.toHaveBeenCalled();
|
||||||
expect(ServersServiceMock.createServers.calledOnce).toEqual(true);
|
expect(ServersServiceMock.createServers).toHaveBeenCalledTimes(1);
|
||||||
expect(ServersServiceMock.createServers.firstCall.calledWith(serversToCreate)).toEqual(true);
|
expect(ServersServiceMock.createServers.mock.calls[0]).toEqual([ serversToCreate ]);
|
||||||
expect(ServersServiceMock.deleteServer.called).toEqual(false);
|
expect(ServersServiceMock.deleteServer).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,26 +1,25 @@
|
||||||
import sinon from 'sinon';
|
|
||||||
import ServersExporter from '../../../src/servers/services/ServersExporter';
|
import ServersExporter from '../../../src/servers/services/ServersExporter';
|
||||||
|
|
||||||
describe('ServersExporter', () => {
|
describe('ServersExporter', () => {
|
||||||
const createLinkMock = () => ({
|
const createLinkMock = () => ({
|
||||||
setAttribute: sinon.fake(),
|
setAttribute: jest.fn(),
|
||||||
click: sinon.fake(),
|
click: jest.fn(),
|
||||||
style: {},
|
style: {},
|
||||||
});
|
});
|
||||||
const createWindowMock = (isIe10 = true) => ({
|
const createWindowMock = (isIe10 = true) => ({
|
||||||
navigator: {
|
navigator: {
|
||||||
msSaveBlob: isIe10 ? sinon.fake() : undefined,
|
msSaveBlob: isIe10 ? jest.fn() : undefined,
|
||||||
},
|
},
|
||||||
document: {
|
document: {
|
||||||
createElement: sinon.fake.returns(createLinkMock()),
|
createElement: jest.fn(() => createLinkMock()),
|
||||||
body: {
|
body: {
|
||||||
appendChild: sinon.fake(),
|
appendChild: jest.fn(),
|
||||||
removeChild: sinon.fake(),
|
removeChild: jest.fn(),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const serversServiceMock = {
|
const serversServiceMock = {
|
||||||
listServers: sinon.fake.returns({
|
listServers: jest.fn(() => ({
|
||||||
abc123: {
|
abc123: {
|
||||||
id: 'abc123',
|
id: 'abc123',
|
||||||
name: 'foo',
|
name: 'foo',
|
||||||
|
@ -29,10 +28,16 @@ describe('ServersExporter', () => {
|
||||||
id: 'def456',
|
id: 'def456',
|
||||||
name: 'bar',
|
name: 'bar',
|
||||||
},
|
},
|
||||||
}),
|
})),
|
||||||
};
|
};
|
||||||
const createCsvjsonMock = (throwError = false) => ({
|
const createCsvjsonMock = (throwError = false) => ({
|
||||||
toCSV: throwError ? sinon.fake.throws('') : sinon.fake.returns(''),
|
toCSV: jest.fn(() => {
|
||||||
|
if (throwError) {
|
||||||
|
throw new Error('');
|
||||||
|
}
|
||||||
|
|
||||||
|
return '';
|
||||||
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('exportServers', () => {
|
describe('exportServers', () => {
|
||||||
|
@ -40,10 +45,10 @@ describe('ServersExporter', () => {
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
originalConsole = global.console;
|
originalConsole = global.console;
|
||||||
global.console = { error: sinon.fake() };
|
global.console = { error: jest.fn() };
|
||||||
global.Blob = class Blob {};
|
global.Blob = class Blob {};
|
||||||
global.URL = { createObjectURL: () => '' };
|
global.URL = { createObjectURL: () => '' };
|
||||||
serversServiceMock.listServers.resetHistory();
|
serversServiceMock.listServers.mockReset();
|
||||||
});
|
});
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
global.console = originalConsole;
|
global.console = originalConsole;
|
||||||
|
@ -59,8 +64,8 @@ describe('ServersExporter', () => {
|
||||||
|
|
||||||
exporter.exportServers();
|
exporter.exportServers();
|
||||||
|
|
||||||
expect(global.console.error.callCount).toEqual(1);
|
expect(global.console.error).toHaveBeenCalledTimes(1);
|
||||||
expect(csvjsonMock.toCSV.callCount).toEqual(1);
|
expect(csvjsonMock.toCSV).toHaveBeenCalledTimes(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('makes use of msSaveBlob API when available', () => {
|
it('makes use of msSaveBlob API when available', () => {
|
||||||
|
@ -73,9 +78,9 @@ describe('ServersExporter', () => {
|
||||||
|
|
||||||
exporter.exportServers();
|
exporter.exportServers();
|
||||||
|
|
||||||
expect(serversServiceMock.listServers.callCount).toEqual(1);
|
expect(serversServiceMock.listServers).toHaveBeenCalledTimes(1);
|
||||||
expect(windowMock.navigator.msSaveBlob.callCount).toEqual(1);
|
expect(windowMock.navigator.msSaveBlob).toHaveBeenCalledTimes(1);
|
||||||
expect(windowMock.document.createElement.callCount).toEqual(0);
|
expect(windowMock.document.createElement).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('makes use of download link API when available', () => {
|
it('makes use of download link API when available', () => {
|
||||||
|
@ -88,10 +93,10 @@ describe('ServersExporter', () => {
|
||||||
|
|
||||||
exporter.exportServers();
|
exporter.exportServers();
|
||||||
|
|
||||||
expect(serversServiceMock.listServers.callCount).toEqual(1);
|
expect(serversServiceMock.listServers).toHaveBeenCalledTimes(1);
|
||||||
expect(windowMock.document.createElement.callCount).toEqual(1);
|
expect(windowMock.document.createElement).toHaveBeenCalledTimes(1);
|
||||||
expect(windowMock.document.body.appendChild.callCount).toEqual(1);
|
expect(windowMock.document.body.appendChild).toHaveBeenCalledTimes(1);
|
||||||
expect(windowMock.document.body.removeChild.callCount).toEqual(1);
|
expect(windowMock.document.body.removeChild).toHaveBeenCalledTimes(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
import sinon from 'sinon';
|
|
||||||
import ServersImporter from '../../../src/servers/services/ServersImporter';
|
import ServersImporter from '../../../src/servers/services/ServersImporter';
|
||||||
|
|
||||||
describe('ServersImporter', () => {
|
describe('ServersImporter', () => {
|
||||||
const servers = [{ name: 'foo' }, { name: 'bar' }];
|
const servers = [{ name: 'foo' }, { name: 'bar' }];
|
||||||
const csvjsonMock = {
|
const csvjsonMock = {
|
||||||
toObject: sinon.fake.returns(servers),
|
toObject: jest.fn(() => servers),
|
||||||
};
|
};
|
||||||
const importer = new ServersImporter(csvjsonMock);
|
const importer = new ServersImporter(csvjsonMock);
|
||||||
|
|
||||||
beforeEach(() => csvjsonMock.toObject.resetHistory());
|
beforeEach(() => csvjsonMock.toObject.mockClear());
|
||||||
|
|
||||||
describe('importServersFromFile', () => {
|
describe('importServersFromFile', () => {
|
||||||
it('rejects with error if no file was provided', async () => {
|
it('rejects with error if no file was provided', async () => {
|
||||||
|
@ -28,7 +27,7 @@ describe('ServersImporter', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('reads file when a CSV is provided', async () => {
|
it('reads file when a CSV is provided', async () => {
|
||||||
const readAsText = sinon.fake.returns('');
|
const readAsText = jest.fn(() => '');
|
||||||
|
|
||||||
global.FileReader = class FileReader {
|
global.FileReader = class FileReader {
|
||||||
constructor() {
|
constructor() {
|
||||||
|
@ -40,8 +39,8 @@ describe('ServersImporter', () => {
|
||||||
|
|
||||||
await importer.importServersFromFile({ type: 'text/csv' });
|
await importer.importServersFromFile({ type: 'text/csv' });
|
||||||
|
|
||||||
expect(readAsText.callCount).toEqual(1);
|
expect(readAsText).toHaveBeenCalledTimes(1);
|
||||||
expect(csvjsonMock.toObject.callCount).toEqual(1);
|
expect(csvjsonMock.toObject).toHaveBeenCalledTimes(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
import sinon from 'sinon';
|
|
||||||
import { last } from 'ramda';
|
import { last } from 'ramda';
|
||||||
import ServersService from '../../../src/servers/services/ServersService';
|
import ServersService from '../../../src/servers/services/ServersService';
|
||||||
|
|
||||||
|
@ -8,8 +7,8 @@ describe('ServersService', () => {
|
||||||
def456: { id: 'def456' },
|
def456: { id: 'def456' },
|
||||||
};
|
};
|
||||||
const createStorageMock = (returnValue) => ({
|
const createStorageMock = (returnValue) => ({
|
||||||
set: sinon.fake(),
|
set: jest.fn(),
|
||||||
get: sinon.fake.returns(returnValue),
|
get: jest.fn(() => returnValue),
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('listServers', () => {
|
describe('listServers', () => {
|
||||||
|
@ -20,8 +19,8 @@ describe('ServersService', () => {
|
||||||
const result = service.listServers();
|
const result = service.listServers();
|
||||||
|
|
||||||
expect(result).toEqual({});
|
expect(result).toEqual({});
|
||||||
expect(storageMock.get.callCount).toEqual(1);
|
expect(storageMock.get).toHaveBeenCalledTimes(1);
|
||||||
expect(storageMock.set.callCount).toEqual(0);
|
expect(storageMock.set).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('returns value from storage when found', () => {
|
it('returns value from storage when found', () => {
|
||||||
|
@ -31,8 +30,8 @@ describe('ServersService', () => {
|
||||||
const result = service.listServers();
|
const result = service.listServers();
|
||||||
|
|
||||||
expect(result).toEqual(servers);
|
expect(result).toEqual(servers);
|
||||||
expect(storageMock.get.callCount).toEqual(1);
|
expect(storageMock.get).toHaveBeenCalledTimes(1);
|
||||||
expect(storageMock.set.callCount).toEqual(0);
|
expect(storageMock.set).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -44,8 +43,8 @@ describe('ServersService', () => {
|
||||||
const result = service.findServerById('ghi789');
|
const result = service.findServerById('ghi789');
|
||||||
|
|
||||||
expect(result).toBeUndefined();
|
expect(result).toBeUndefined();
|
||||||
expect(storageMock.get.callCount).toEqual(1);
|
expect(storageMock.get).toHaveBeenCalledTimes(1);
|
||||||
expect(storageMock.set.callCount).toEqual(0);
|
expect(storageMock.set).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('returns server from list when found', () => {
|
it('returns server from list when found', () => {
|
||||||
|
@ -55,8 +54,8 @@ describe('ServersService', () => {
|
||||||
const result = service.findServerById('abc123');
|
const result = service.findServerById('abc123');
|
||||||
|
|
||||||
expect(result).toEqual({ id: 'abc123' });
|
expect(result).toEqual({ id: 'abc123' });
|
||||||
expect(storageMock.get.callCount).toEqual(1);
|
expect(storageMock.get).toHaveBeenCalledTimes(1);
|
||||||
expect(storageMock.set.callCount).toEqual(0);
|
expect(storageMock.set).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -67,9 +66,12 @@ describe('ServersService', () => {
|
||||||
|
|
||||||
service.createServer({ id: 'ghi789' });
|
service.createServer({ id: 'ghi789' });
|
||||||
|
|
||||||
expect(storageMock.get.callCount).toEqual(1);
|
expect(storageMock.get).toHaveBeenCalledTimes(1);
|
||||||
expect(storageMock.set.callCount).toEqual(1);
|
expect(storageMock.set).toHaveBeenCalledTimes(1);
|
||||||
expect(last(storageMock.set.lastCall.args)).toEqual({
|
|
||||||
|
const setLastCallLastArg = last(last(storageMock.set.mock.calls));
|
||||||
|
|
||||||
|
expect(setLastCallLastArg).toEqual({
|
||||||
abc123: { id: 'abc123' },
|
abc123: { id: 'abc123' },
|
||||||
def456: { id: 'def456' },
|
def456: { id: 'def456' },
|
||||||
ghi789: { id: 'ghi789' },
|
ghi789: { id: 'ghi789' },
|
||||||
|
@ -84,9 +86,12 @@ describe('ServersService', () => {
|
||||||
|
|
||||||
service.createServers([{ id: 'ghi789' }, { id: 'jkl123' }]);
|
service.createServers([{ id: 'ghi789' }, { id: 'jkl123' }]);
|
||||||
|
|
||||||
expect(storageMock.get.callCount).toEqual(1);
|
expect(storageMock.get).toHaveBeenCalledTimes(1);
|
||||||
expect(storageMock.set.callCount).toEqual(1);
|
expect(storageMock.set).toHaveBeenCalledTimes(1);
|
||||||
expect(last(storageMock.set.lastCall.args)).toEqual({
|
|
||||||
|
const setLastCallLastArg = last(last(storageMock.set.mock.calls));
|
||||||
|
|
||||||
|
expect(setLastCallLastArg).toEqual({
|
||||||
abc123: { id: 'abc123' },
|
abc123: { id: 'abc123' },
|
||||||
def456: { id: 'def456' },
|
def456: { id: 'def456' },
|
||||||
ghi789: { id: 'ghi789' },
|
ghi789: { id: 'ghi789' },
|
||||||
|
@ -102,9 +107,12 @@ describe('ServersService', () => {
|
||||||
|
|
||||||
service.deleteServer({ id: 'abc123' });
|
service.deleteServer({ id: 'abc123' });
|
||||||
|
|
||||||
expect(storageMock.get.callCount).toEqual(1);
|
expect(storageMock.get).toHaveBeenCalledTimes(1);
|
||||||
expect(storageMock.set.callCount).toEqual(1);
|
expect(storageMock.set).toHaveBeenCalledTimes(1);
|
||||||
expect(last(storageMock.set.lastCall.args)).toEqual({
|
|
||||||
|
const setLastCallLastArg = last(last(storageMock.set.mock.calls));
|
||||||
|
|
||||||
|
expect(setLastCallLastArg).toEqual({
|
||||||
def456: { id: 'def456' },
|
def456: { id: 'def456' },
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue