Skip to content

Instantly share code, notes, and snippets.

Avatar

Morgan Roderick mroderick

View GitHub Profile
@mroderick
mroderick / dependencies.md
Created Feb 20, 2020
Sinon library inter-dependencies
View dependencies.md

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

Sinon

┌────────────────────────┐                                                                                               
│    @sinonjs/commons    │◀──────────────────────────────────────────────────┐                                           
@mroderick
mroderick / README.md
Last active Jul 18, 2018
Firefox debugger bug
View README.md

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
mroderick / sinon-array-test.js
Created Aug 9, 2017
A sample which shows that you cannot stub the `Array.prototype.filter` method. All works fine for `Array.prototype.map`.
View sinon-array-test.js
'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 ] );
View how-to-add-image-to-gist.md

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 https://gist.github.com/<hash>.git # with https
    git clone git@gist.github.com:<hash>.git     # or with ssh
@mroderick
mroderick / test-with-error.js
Last active Feb 24, 2016
How can I get mocha to fail on exceptions?
View test-with-error.js
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
mroderick / eslint-pre-commit.sh
Last active Feb 3, 2017
My current git pre-commit hook script for linting staged changes with ESLint
View eslint-pre-commit.sh
#!/bin/bash
# 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
fi
@mroderick
mroderick / frontend-curriculum.md
Last active Oct 27, 2017
Frontend Curriculum
View frontend-curriculum.md
@mroderick
mroderick / copenhagen-recommendations.md
Created Aug 26, 2015
A list of recommendations for Copenhagen, Denmark
View copenhagen-recommendations.md

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.

General

  • 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
mroderick / favourite-food-blogs.md
Last active Aug 29, 2015
I was asked for favourite food blogs, networks, etc.
View favourite-food-blogs.md
@mroderick
mroderick / stringify-tip.js
Created Apr 15, 2015
Readable output from JSON.stringify
View stringify-tip.js
var o = {hello:'world', greetings: ['one', 'two', 'three']};
undefined
// regular, difficult to read for large objects
JSON.stringify(o);
"{"hello":"world","greetings":["one","two","three"]}"
// presto!
JSON.stringify(o, '', ' ');
"{