How to use the fake function from sinon

Find comprehensive JavaScript sinon.fake code examples handpicked from public code repositorys.

Sinon.fake is a JavaScript function that creates a fake function to use in place of a real function for testing or other purposes.

60
61
62
63
64
65
66
67
68

Testing this function can be quite elegantly achieved with a [test fake][fakes]:

```javascript
it('calls the original function', function () {
    var callback = sinon.fake();
    var proxy = once(callback);

    proxy();
fork icon810
star icon0
watch icon2

+ 31 other calls in file

56
57
58
59
60
61
62
63
64
65
  },
};
const generateResponse = () => {
  const res = { test: 'testing' };
  res.status = sinon.stub().returns(res);
  res.json = sinon.fake((param) => param);
  return res;
};

afterEach(() => {
fork icon227
star icon164
watch icon24

+ 11 other calls in file

How does sinon.fake work?

Sinon.fake works by creating a new fake function that can be used in place of a real function. The fake function can be used to intercept calls to the real function and return predefined values or perform specific actions. It can also be used to record information about how it is called, such as the arguments passed to it and the number of times it is called. This can be useful in situations where it is necessary to test a function or simulate certain behaviors without actually calling the real function. By providing a convenient and reliable way to create fake functions, Sinon.fake can help to simplify and streamline the testing and development process.

3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
    stripeHelper.extractSourceCountryFromSubscription(subscription2);
  assert.equal(result, null);
});

it('returns null and sends sentry error with no charges', () => {
  const scopeContextSpy = sinon.fake();
  const scopeSpy = {
    setContext: scopeContextSpy,
  };
  sandbox.replace(Sentry, 'withScope', (fn) => fn(scopeSpy));
fork icon206
star icon482
watch icon43

419
420
421
422
423
424
425
426
427
        info: Sinon.fake(),
        warn: Sinon.fake(),
        error: Sinon.fake(),
    };
    console = {
        log: Sinon.fake(),
    };
    done();
});
fork icon35
star icon8
watch icon60

+ 3 other calls in file

Ai Example

1
2
3
4
5
6
7
8
9
10
11
12
13
const sinon = require("sinon");

// Define a real function that adds two numbers
const addNumbers = (a, b) => {
  return a + b;
};

// Create a fake function to use in place of the real function
const fakeAddNumbers = sinon.fake.returns(10);

// Call the fake function and output the result to the console
const result = fakeAddNumbers(2, 3);
console.log(`Result: ${result}`);

In this example, we use sinon.fake to create a fake function (fakeAddNumbers) to use in place of a real function (addNumbers). We configure the fake function to return a specific value (10) using sinon.fake.returns(). We then call the fake function with the arguments (2, 3) and output the result to the console. Since the fake function is configured to return 10, the output will be "Result: 10". By using Sinon.fake, we can intercept calls to a real function and control the output for testing or other purposes, without actually calling the real function.

27
28
29
30
31
32
33
34
35
36

beforeEach(() => {
  res = {
    status: sinon.fake(),
    redirect: sinon.fake(),
    send: sinon.fake(),
    render: sinon.fake(),
    log: { info: sinon.fake(), error: sinon.fake() },
  };
  req = {
fork icon1
star icon2
watch icon21

+ 139 other calls in file

114
115
116
117
118
119
120
121
122
123
124
125
const mockMailgun = (customStubbedSend) => {
    mockSetting('mailgun_api_key', 'test');
    mockSetting('mailgun_domain', 'example.com');
    mockSetting('mailgun_base_url', 'test');


    const stubbedSend = customStubbedSend ?? sinon.fake.resolves({
        id: `<${new Date().getTime()}.${0}.5817@samples.mailgun.org>`
    });


    // We need to stub the Mailgun client before starting Ghost
fork icon0
star icon0
watch icon0

+ 3 other calls in file