Skip to content

Instantly share code, notes, and snippets.

View heymichaelp's full-sized avatar

Michael Phillips heymichaelp

View GitHub Profile
@heymichaelp
heymichaelp / queryObjects1.json
Last active August 29, 2015 14:03
Query Objects: JSON Response Example
{
"room": "A1",
"grade": 6,
"teacher": {
"firstName": "Jane",
"lastName": "Smith",
"gender": "f"
},
"students": [
{
@heymichaelp
heymichaelp / formObjects.test.js
Last active August 29, 2015 14:02
Form Objects: Testing
var _ = require('underscore')
var expect = require('chai').expect
var sinon = require("sinon")
var sinonChai = require("sinon-chai")
chai.use(sinonChai)
var NewStudentForm = require('./NewStudentForm')
describe('NewStudentForm', function(){
@heymichaelp
heymichaelp / formObjects4.js
Last active August 29, 2015 14:02
Form Objects: Example of Validator API
// Client-side
var validator = new NewStudentFormValidator().validate(data)
if (validator.isValid()) {
// submit form to server
} else {
// show errors to user
}
// Server-side (application route)
var validator = new NewStudentFormValidator().validate(data)
@heymichaelp
heymichaelp / formObjects3.js
Last active August 29, 2015 14:02
Form Objects: Example of Validator Object
var _ = require('underscore')
var NewStudentFormValidator = function() {
this.errors = [] // for storing validation errors encountered
}
NewStudentFormValidator.prototype = _.extend(NewStudentFormValidator.prototype, {
validate: function(data) {
// call each validation method, storing
@heymichaelp
heymichaelp / formObjects2.js
Last active August 29, 2015 14:02
Form Object: Example of Complete Form Object API
var myController = function(req, res) {
var form = new NewStudentForm(req.body).process()
if (form.errors.length > 0) {
// send the user back to the form
} else {
// send the user to the success page
}
}
@heymichaelp
heymichaelp / formObjects1.js
Last active August 29, 2015 14:02
Form Objects: Example of Complete Form Object
var _ = require('underscore')
var NewStudentForm = function(data) {
this.data = data
this.errors = [] // for storing validation errors encountered
}
NewStudentForm.prototype = _.extend(NewStudentForm.prototype, {
process: function() {
$('.submit').click(function(e){
e.preventDefault();
ev.trigger('submit');
});
{
"username": "natashaeng",
"key": "Nrcfj2KfYjUVvKMvkCsN",
"test_path": "selenium_test.js",
"browsers": [
{
"browser": "Firefox",
"browser_version": "28.0",
"os": "Windows",
"os_version": "XP",
@heymichaelp
heymichaelp / valueObjects5.js
Last active August 29, 2015 14:02
Value Objects: Example of Functional approach
Grade.equal = function(grade1, grade2) {
return grade1.valueOf() === grade2.valueOf();
}
var myFirstGrade = new Grade(0.7);
var mySecondGrade = new Grade(0.7);
Grade.equal(myFirstGrade, mySecondGrade) // => true
@heymichaelp
heymichaelp / determineStudentPassingStatus.test.js
Last active August 29, 2015 14:02
Service Objects: Testing
var expect = require('chai').expect;
var DetermineStudentPassingStatus = require('./determineStudentPassingStatus');
var Grade = require('./grade');
describe('DetermineStudentPassingStatus', function(){
var student = {};
var determineStudentPassingStatus = new DetermineStudentPassingStatus(student);
describe('#fromAssignments', function(){
var passing;