/
restore-test.js
46 lines (36 loc) · 1.42 KB
/
restore-test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"use strict";
var referee = require("@sinonjs/referee");
var restore = require("../../../lib/sinon/util/core/restore");
var createStub = require("../../../lib/sinon/stub");
var assert = referee.assert;
describe("util/core/restore", function () {
it("restores all methods of supplied object", function () {
var methodA = function () {};
var methodB = function () {};
var nonEnumerableMethod = function () {};
var obj = { methodA: methodA, methodB: methodB, nonEnumerableMethod: nonEnumerableMethod };
Object.defineProperty(obj, "nonEnumerableMethod", {
enumerable: false
});
createStub(obj);
restore(obj);
assert.same(obj.methodA, methodA);
assert.same(obj.methodB, methodB);
assert.same(obj.nonEnumerableMethod, nonEnumerableMethod);
});
it("only restores restorable methods", function () {
var stubbedMethod = function () {};
var vanillaMethod = function () {};
var obj = { stubbedMethod: stubbedMethod, vanillaMethod: vanillaMethod };
createStub(obj, "stubbedMethod");
restore(obj);
assert.same(obj.stubbedMethod, stubbedMethod);
});
it("restores a single stubbed method", function () {
var method = function () {};
var obj = { method: method };
createStub(obj);
restore(obj.method);
assert.same(obj.method, method);
});
});