Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@elpete
Last active May 9, 2017 12:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save elpete/52fc9dede32a52ae51dde6b754500a24 to your computer and use it in GitHub Desktop.
Save elpete/52fc9dede32a52ae51dde6b754500a24 to your computer and use it in GitHub Desktop.
Snapshot Testing in TestBox
component {
function index( event, rc, prc ) {
var criteria = event.valueExists( "active" ) ? { active = rc.active } : {};
var users = getInstance( "User" ).findAllWhere( criteria )
.map( function( user ) {
return user.getMemento();
} );
event.renderData( data = users, format = "json" );
}
}
component extends="coldbox.system.testing.BaseTestCase" {
function run() {
describe( "users handler", function() {
beforeEach( function() {
setup();
variables.users = [
getWireBox().getInstance( "User" ).new( { name = "John", active = true } ),
getWireBox().getInstance( "User" ).new( { name = "Jane", active = false } )
];
for ( var user in users ) {
user.save();
}
} );
afterEach( function() {
for ( var user in users ) {
user.delete();
}
} );
it( "can return all users", function() {
var event = execute( event = "api.v1.users", renderResults = true );
var users = event.getRenderedContent();
expect( users ).toBe( [
{ name = "John", active = true },
{ name = "Jane", active = false }
] );
} );
it( "can filter the list of users returned", function() {
getRequestContext().setValue( "active", true );
var event = execute( event = "api.v1.users", renderResults = true );
var users = event.getRenderedContent();
expect( users ).toBe( [
{ name = "John", active = true }
] );
} );
} );
}
}
component extends="coldbox.system.testing.BaseTestCase" {
function beforeAll() {
super.beforeAll();
addMatchers( "testbox-snapshots.SnapshotMatchers" );
}
function run() {
describe( "users handler", function() {
beforeEach( function() {
setup();
variables.users = [
getWireBox().getInstance( "User" ).new( { active = true } ).save(),
getWireBox().getInstance( "User" ).new( { active = false } ).save()
];
} );
afterEach( function() {
for ( var user in users ) {
user.delete();
}
} );
it( "can return all users", function() {
var event = execute( event = "api.v1.users", renderResults = true );
var users = event.getRenderedContent();
expect( users ).toMatchSnapshot();
} );
it( "can filter the list of users returned", function() {
getRequestContext().setValue( "active", true );
var event = execute( event = "api.v1.users", renderResults = true );
var users = event.getRenderedContent();
expect( users ).toMatchSnapshot();
} );
} );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment