/
function-to-string-test.js
36 lines (28 loc) · 1.05 KB
/
function-to-string-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
"use strict";
var referee = require("@sinonjs/referee");
var createSpy = require("../../../lib/sinon/spy");
var functionToString = require("../../../lib/sinon/util/core/function-to-string");
var assert = referee.assert;
describe("util/core/functionToString", function () {
it("returns function's displayName property", function () {
var fn = function () {};
fn.displayName = "Larry";
assert.equals(functionToString.call(fn), "Larry");
});
it("guesses name from last call's this object", function () {
var obj = {};
obj.doStuff = createSpy();
obj.doStuff.call({});
obj.doStuff();
assert.equals(functionToString.call(obj.doStuff), "doStuff");
});
it("guesses name from any call where property can be located", function () {
var obj = {};
var otherObj = { id: 42 };
obj.doStuff = createSpy();
obj.doStuff.call({});
obj.doStuff();
obj.doStuff.call(otherObj);
assert.equals(functionToString.call(obj.doStuff), "doStuff");
});
});