rspec-when 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +42 -1
  3. metadata +5 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 63b5e2cc54a288d461b1fbfecc5e6415e4d6cc39
4
- data.tar.gz: 0980ba0c3c700c501d6f92e68fa13a7ea755809c
2
+ SHA256:
3
+ metadata.gz: 44837389b8a8fe11afe1b9e829a1eaac0e4e7536342a4c95a0d505d7312e399f
4
+ data.tar.gz: 9aae1e273e5052db62103570ac5c87c84f556b3afbd46ef2c029cfb19c61d2d9
5
5
  SHA512:
6
- metadata.gz: 8869c96cc00b12d1d9b3fbd25003a7402dfba007499fea695af368d1027f5c9234279989fbe3569681aadea1d4e3841691891c8168b67d34bc5b1fee6066d7f7
7
- data.tar.gz: af92ba4fa7a1c544a22062e94959cab594607eab294bf6eebf5982dd4ffd38436e925b74278dbedf95b8ff1a77bfe45d90cf0097fad5f8f0a4a0359fc8d2ab85
6
+ metadata.gz: 8c05ca0ac8562fd4f8f7b7cf2e42015534866e05cbffda5f13eff6e3bbc94a3caa5b5767118ab379f2d96aff85d26b3b86e4cc601c12183b57b70c0ec676d338
7
+ data.tar.gz: e785eb34ea4954d9d311102a4df62834f06e9f21068417ecb102e33c57a7c1ac93ae23ae804e06ae9a3fd6da6dfac1d4d9f3026ca35f646d0e79e05896b20e32
data/README.md CHANGED
@@ -42,4 +42,45 @@ end
42
42
  ```
43
43
 
44
44
  Typical usage is when abstracting common expectations into a helper method to
45
- DRY up tests where testing the inverse expectation is also required.
45
+ DRY up tests where testing the inverse expectation is also required.
46
+
47
+ ## Examples
48
+
49
+ The most common place I find these types of wrappers useful is when testing
50
+ access privileges on users. Instead of testing each user type independently,
51
+ they can all be tested at once with an easy to read and understand syntax
52
+
53
+ so
54
+
55
+ ```rb
56
+ context 'admin' do
57
+ subject(:user) { build(:user, :admin) }
58
+
59
+ it { is_expected.to have_property_a }
60
+ ...
61
+ end
62
+
63
+ context 'normie' do
64
+ subject(:user) { build(:user, :admin) }
65
+
66
+ it { is_expected.not_to have_property_a }
67
+ ...
68
+ end
69
+
70
+ ...
71
+
72
+ ```
73
+
74
+ can be re-written as
75
+ ```rb
76
+ %i[admin normie super_admin another_type].each do |user_type|
77
+ subject(:user) { build(:user, user_type) }
78
+ let(:is_an_admin) { %i[admin super_admin].include? user_type }
79
+
80
+ it { is_expected.when(is_an_admin).with_inverse.to have_property_a }
81
+ ...
82
+ end
83
+ ```
84
+
85
+ Another common place is when testing page content, again usually user type based.
86
+ Can very easily combine otherwise repetitive expectations into single tests
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-when
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Bromwich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-19 00:00:00.000000000 Z
11
+ date: 2019-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-expectations
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '2.0'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '4.0'
22
+ version: '5.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '2.0'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '4.0'
32
+ version: '5.0'
33
33
  description:
34
34
  email: a.bromwich@gmail.com
35
35
  executables: []
@@ -64,10 +64,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  - !ruby/object:Gem::Version
65
65
  version: '0'
66
66
  requirements: []
67
- rubyforge_project:
68
- rubygems_version: 2.4.8
67
+ rubygems_version: 3.0.6
69
68
  signing_key:
70
69
  specification_version: 4
71
70
  summary: RSpec extension for when syntax
72
71
  test_files: []
73
- has_rdoc: