Skip to content

Instantly share code, notes, and snippets.

@distributedlife
Last active December 18, 2015 23:49
Show Gist options
  • Select an option

  • Save distributedlife/5864492 to your computer and use it in GitHub Desktop.

Select an option

Save distributedlife/5864492 to your computer and use it in GitHub Desktop.
no this, just behaviour, injected deps -- no new, uses one builder, event driven
define([], function() {
"use strict";
return function(player, ui_builder) {
var label = ui_builder.build_label("player_role");
var refresh = function() {
if (player.is_batting()) {
label.update_text("You are batting.");
} else {
label.update_text("You are bowling.");
}
};
var init = function() {
player.on_event('update', refresh);
};
init();
};
});
requirejs = require('../../spec_helper').requirejs
player = require('../../stubs/cricket').player
label = require('../../stubs/lib').label
ui_builder = require('../../stubs/lib').ui_builder
module_mock = require('../../stubs/module_mock')
module_mock.reset(requirejs)
RoleDisplay = requirejs('cricket/ui/role_display')
describe "role display", ->
describe "init", ->
beforeEach ->
player.listen_for_events()
display = new RoleDisplay(player, ui_builder)
it "should refresh when the player is updates", ->
expect(player.on_event).toHaveBeenCalledWith('update', any(Function))
describe "refreshing", ->
beforeEach ->
player.capture_events()
label.update_text.reset()
display = new RoleDisplay(player, ui_builder)
it "should update the label if the player is batting", ->
player.is_batting = -> true
player.test_update()
expect(label.update_text).toHaveBeenCalled()
it "should update the label if the player is bowling", ->
player.is_batting = -> false
player.test_update()
expect(label.update_text).toHaveBeenCalled()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment