Skip to content

Instantly share code, notes, and snippets.

View bryanjknight's full-sized avatar

Bryan J. Knight bryanjknight

View GitHub Profile
@bryanjknight
bryanjknight / fs-stubbing.test.ts
Created March 29, 2018 20:12
Stubbing fs using sinonjs in typescript
import testModule from '../src/test';
import { expect } from 'chai';
import sinon from 'sinon';
import fs from 'fs';
describe('testModule', () => {
let readFileSyncStub: sinon.SinonStub;
let sandbox;
beforeEach(() => {
'use strict';
async function doSomething(waitTime) {
// because setTimeout does not return a promise (yet)
// we have to wrap it in a promise and wait for it to resolve
return new Promise(function(resolve) {
setTimeout(resolve, waitTime);
});
}
@bryanjknight
bryanjknight / Example-Mocha-Sinon-Promise-Proxyquire.js
Last active March 26, 2018 19:03
MochaJS, SinonJS, Proxyquire, and how to stub internally instantiated classes
'use strict';
const fs = require('fs');
const path = require('path');
const NodeZip = require('node-zip');
class JsonZipper {
constructor(path) {
this.path = path;
}
@bryanjknight
bryanjknight / Example-Mocha-Sinon-Promises.js
Last active March 26, 2018 19:03
MochaJS + SinonJS + Promises
'use strict';
const fs = require('fs');
const path = require('path');
const NodeZip = require('node-zip');
class JsonZipper {
constructor(path) {
this.path = path;
}
@bryanjknight
bryanjknight / bluebird-retry-request.js
Created March 24, 2018 17:53
bluebird-retry and request
'use strict';
const Promise = require('bluebird');
const PromiseRetry = require('bluebird-retry');
const request = require('request');
const retryConfig = {
timeout: 20000, // 20 seconds
interval: 2000, // retry every 10 seconds
max_tries: 10 // 10 retries
@bryanjknight
bryanjknight / promise-chaining.js
Last active March 24, 2018 13:34
Example of Promise chaining
'use strict';
const Promise = require('bluebird');
class Test {
constructor() {
this.count = 0;
}
doSomething() {
const self = this;