Skip to content

Instantly share code, notes, and snippets.

View mroderick's full-sized avatar

Morgan Roderick mroderick

View GitHub Profile
mroderick /
Created February 20, 2020 12:41
Sinon library inter-dependencies

Sinon library inter-dependencies

These diagrams show how the Sinon family of libraries depend on each other. devDependencies are omitted, as they can be considering "internal", and shouldn't be installed by end users of sinon or referee


│    @sinonjs/commons    │◀──────────────────────────────────────────────────┐                                           
mroderick /
Last active July 18, 2018 14:16
Firefox debugger bug

Firefox debugger bug

When using the debugger and re-using an argument name in a chain of promises, the debugger displays the second argument as undefined().

Try running the examples in Firefox and compare what the debugger displays about the argument to the second callback.

mroderick / sinon-array-test.js
Created August 9, 2017 08:24
A sample which shows that you cannot stub the `Array.prototype.filter` method. All works fine for ``.
'use strict';
const sinon = require( 'sinon' );
const expect = require( 'chai' ).expect;
describe( 'Array.prototype', () => {
describe( 'map()', () => {
it( 'uses native map', () => {
const callback = sinon.spy();
const stub = sinon.stub( Array.prototype, 'map' ).returns( [ 2, 4 ] );

How to add an image to a gist

  1. Create a gist if you haven't already.
  2. Clone your gist:
    # make sure to replace `<hash>` with your gist's hash
    git clone<hash>.git # with https
    git clone<hash>.git     # or with ssh
mroderick / test-with-error.js
Last active February 24, 2016 09:23
How can I get mocha to fail on exceptions?
describe('this should cause tests to fail', function(){
// this will cause an exception
// causing mocha to ignore this whole file
var hello = JSON.parse('{"hello":}');
it('should something', function(){
// magic
assert.equal(true, true);
mroderick /
Last active April 28, 2021 14:27
My current git pre-commit hook script for linting staged changes with ESLint
# if there are no staged changes, we can exit immediately
# this is fast and prevents issues when popping a stash we didn't create
STAGED_CHANGES=`git diff-index --cached HEAD --name-only --diff-filter ACMR`
if [ -z "$STAGED_CHANGES" ]; then
exit 0
mroderick /
Last active October 27, 2017 10:38
Frontend Curriculum
mroderick /
Created August 26, 2015 05:34
A list of recommendations for Copenhagen, Denmark

Things to do in Copenhagen

I get asked for recommendations for Copenhagen often enough, that this little document is now a thing.

Please give back by contributing to it.


  • Visit Copenhagen
  • CopenhagenCard - this seems like a good deal. Put it on smartphone, and have it ready on * arrival... there's a list of attractions included
  • Arken - Museum of modern art
mroderick /
Last active August 29, 2015 14:27
I was asked for favourite food blogs, networks, etc.
mroderick / stringify-tip.js
Created April 15, 2015 10:20
Readable output from JSON.stringify
var o = {hello:'world', greetings: ['one', 'two', 'three']};
// regular, difficult to read for large objects
// presto!
JSON.stringify(o, '', ' ');