chai-backbone-rails 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  module Chai
2
2
  module Backbone
3
3
  module Rails
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
6
6
  end
7
7
  end
@@ -2,3 +2,5 @@
2
2
  #= require ./spec/chai-backbone_spec
3
3
  #= require ./chai-sinon
4
4
  #= require ./spec/chai-sinon_spec
5
+ #= require ./factories
6
+ #= require ./spec/factory_spec
@@ -0,0 +1,23 @@
1
+
2
+ window.Factory =
3
+ factories: {}
4
+
5
+ define: (factoryName, builder) ->
6
+ if factoryName.indexOf('-') > 0
7
+ throw "Factory name '#{factoryName}' can't use - in name. It clashes with the traits construct"
8
+ if @factories[factoryName]?
9
+ throw "Factory #{factoryName} is already defined"
10
+ @factories[factoryName] = builder
11
+
12
+ create: (nameWithTraits, options) ->
13
+ traits = nameWithTraits.split '-'
14
+ factoryName = traits.pop()
15
+ unless @factories[factoryName]?
16
+ throw "Factory #{factoryName} does not exist"
17
+ @factories[factoryName] options, traits...
18
+
19
+ resetFactories: ->
20
+ @factories = []
21
+
22
+
23
+
@@ -0,0 +1,34 @@
1
+ describe 'Factory', ->
2
+
3
+ beforeEach ->
4
+ Factory.define 'user', (options = {}, traits...) ->
5
+ [options, traits]
6
+
7
+ afterEach ->
8
+ Factory.resetFactories()
9
+
10
+ describe '::define', ->
11
+
12
+ it 'registers a factory', ->
13
+ result = Factory.create 'user'
14
+ result[0].should.deep.equal {}
15
+ result[1].should.deep.equal []
16
+
17
+ it 'raises an error on existing factory', ->
18
+ expect(-> Factory.define('user', ->)).to.throw 'Factory user is already defined'
19
+
20
+ it 'raises an error on naming conflict with traits', ->
21
+ expect(-> Factory.define('admin-user', ->)).to.throw 'Factory name \'admin-user\' can\'t use - in name. It clashes with the traits construct'
22
+
23
+ describe '::create', ->
24
+
25
+ it 'delivers options to the callback', ->
26
+ result = Factory.create 'user'
27
+ hello: 'world'
28
+ other: 'value'
29
+ result[0].should.deep.equal { hello: 'world', other: 'value' }
30
+
31
+ it 'delivers traits to the callback', ->
32
+ result = Factory.create 'male-admin-user'
33
+ result[1].should.deep.equal ['male', 'admin']
34
+
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chai-backbone-rails
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
5
4
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
5
+ version: 0.0.3
11
6
  platform: ruby
12
7
  authors:
13
8
  - Matthijs Groen
@@ -15,7 +10,7 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2012-08-19 00:00:00 Z
13
+ date: 2012-09-26 00:00:00 Z
19
14
  dependencies: []
20
15
 
21
16
  description: Chai.js matchers for Backbone.js framework
@@ -39,9 +34,11 @@ files:
39
34
  - vendor/assets/javascripts/chai-backbone.js.coffee
40
35
  - vendor/assets/javascripts/chai-backbone_spec.js.coffee
41
36
  - vendor/assets/javascripts/chai-sinon.js.coffee
37
+ - vendor/assets/javascripts/factories.js.coffee
42
38
  - vendor/assets/javascripts/sinon-1.4.2.js
43
39
  - vendor/assets/javascripts/spec/chai-backbone_spec.js.coffee
44
40
  - vendor/assets/javascripts/spec/chai-sinon_spec.js.coffee
41
+ - vendor/assets/javascripts/spec/factory_spec.js.coffee
45
42
  homepage: ""
46
43
  licenses: []
47
44
 
@@ -55,23 +52,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
55
52
  requirements:
56
53
  - - ">="
57
54
  - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
55
  version: "0"
62
56
  required_rubygems_version: !ruby/object:Gem::Requirement
63
57
  none: false
64
58
  requirements:
65
59
  - - ">="
66
60
  - !ruby/object:Gem::Version
67
- hash: 3
68
- segments:
69
- - 0
70
61
  version: "0"
71
62
  requirements: []
72
63
 
73
64
  rubyforge_project:
74
- rubygems_version: 1.8.15
65
+ rubygems_version: 1.8.5
75
66
  signing_key:
76
67
  specification_version: 3
77
68
  summary: A set of assertion matchers to test Backbone code using Konacha in Rails