Created
September 5, 2012 00:09
-
-
Save klamping/3628357 to your computer and use it in GitHub Desktop.
Sandboxed Module Dependency Injection
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| root = exports ? this | |
| Backbone = require 'backbone' | |
| class Kit extends Backbone.Model | |
| defaults: | |
| 'hits': 0 | |
| initialize: () -> | |
| @set 'score', @getScore() | |
| @on 'change:hits', -> | |
| @set 'score', @getScore() | |
| getScore: () -> | |
| @get('hits') * @id | |
| root.Kit = Kit |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| chai = require 'chai' | |
| should = chai.should() | |
| Backbone = require 'backbone' | |
| SandboxedModule = require('sandboxed-module') | |
| {Kit} = SandboxedModule.require('../src/Kit', { | |
| requires: {'backbone': Backbone} | |
| }); | |
| describe '#Kit', -> | |
| before -> | |
| @kit1 = new Kit({ | |
| id: 15, | |
| hits: 2 | |
| }) | |
| @kit2 = new Kit({ | |
| id: 16, | |
| hits: 0 | |
| }) | |
| true | |
| it 'should have a value', -> | |
| @kit1.id.should.equal 15 | |
| @kit2.id.should.equal 16 | |
| it 'should have a hit count of zero if no hit count passed in', -> | |
| kit3 = new Kit({ | |
| id: 0 | |
| }) | |
| kit3.get('hits').should.equal 0 | |
| kit3.get('score').should.equal 0 | |
| it 'should have the number of hits', -> | |
| @kit1.get('hits').should.equal 2 | |
| @kit2.get('hits').should.equal 0 | |
| it 'should calculate the total score from the hit', -> | |
| @kit1.get('score').should.equal 30 | |
| @kit2.get('score').should.equal 0 | |
| it 'should update the score after a hit count changes', -> | |
| @kit1.set 'hits', 4 | |
| @kit1.get('score').should.equal 60 |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
So I was using the example wrong. It looks like the requires property takes and object which contains the module name + the actual module object itself. I thought 'fake' was something special.