rspec-wait 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9f5a899a14e48407a67a0f68464743175a70c588
4
- data.tar.gz: 7c447517c7c9e3969a3d367b43ed1b1bfc9afc6e
2
+ SHA256:
3
+ metadata.gz: 51f26caeca0b3d18669805db3143077ac97f408e129fbd36c2bc8d5dac9bb709
4
+ data.tar.gz: b7a60846e5c5459e75acb628f10e8daaf2a1276fbb15956d32a90dc64f9b5474
5
5
  SHA512:
6
- metadata.gz: 1883d9f0076464cbb9b832b1b90fcc4f43aaea9d8f4394f2a7e48c14da2b8167353d9ca15d566e8d66fa71a96d230ceae1be9b0a875182c57ab80daddc6ae317
7
- data.tar.gz: 28687bf77171f94032e6456f16afec71efeec40cd1f2e425aadf8121b305a2a5156e23be86515d95081328611cfd18837abd72120b8781f517a529b366adc9cf
6
+ metadata.gz: a8ff555f454d246bb4412ba9197e3bd3ddde4609cfe82d1fc0bff50578f9fe86e756b23fd208fa914da4dba49e7cb72cf307d9be334317a88b1833eb3313ab84
7
+ data.tar.gz: 8ad28a71663a471032f65912731c3081bc96c84007385354312931595d126db14c9da0bf2139a63d8ec3f3eb707b495efb57932d681db949c0ac4eaa942e7c87
@@ -7,15 +7,12 @@ module RSpec
7
7
  failure = nil
8
8
 
9
9
  Timeout.timeout(RSpec.configuration.wait_timeout) do
10
- loop do
11
- begin
12
- actual = target.respond_to?(:call) ? target.call : target
13
- super(actual, *args, &block)
14
- break
15
- rescue RSpec::Expectations::ExpectationNotMetError => failure
16
- sleep RSpec.configuration.wait_delay
17
- retry
18
- end
10
+ begin
11
+ actual = target.respond_to?(:call) ? target.call : target
12
+ super(actual, *args, &block)
13
+ rescue RSpec::Expectations::ExpectationNotMetError => failure
14
+ sleep RSpec.configuration.wait_delay
15
+ retry
19
16
  end
20
17
  end
21
18
  rescue Timeout::Error
@@ -7,13 +7,14 @@ module RSpec
7
7
  # From: https://github.com/rspec/rspec-expectations/blob/v3.0.0/lib/rspec/expectations/expectation_target.rb#L30-L41
8
8
  def self.for(value, block, options = {})
9
9
  if UndefinedValue.equal?(value)
10
- unless block
11
- raise ArgumentError, "You must pass either an argument or a block to `wait_for`."
12
- end
10
+ raise ArgumentError, "You must pass either an argument or a block to `wait_for`." unless block
11
+
13
12
  new(block, options)
14
13
  elsif block
15
14
  raise ArgumentError, "You cannot pass both an argument and a block to `wait_for`."
16
15
  else
16
+ warn "[DEPRECATION] As of rspec-wait version 1.0, " \
17
+ "neither wait_for nor wait.for will accept an argument, only a block."
17
18
  new(value, options)
18
19
  end
19
20
  end
@@ -26,22 +27,26 @@ module RSpec
26
27
 
27
28
  # From: https://github.com/rspec/rspec-expectations/blob/v3.0.0/lib/rspec/expectations/expectation_target.rb#L53-L54
28
29
  def to(matcher = nil, message = nil, &block)
29
- prevent_operator_matchers(:to, matcher) unless matcher
30
- with_wait { PositiveHandler.handle_matcher(@target, matcher, message, &block) }
30
+ prevent_operator_matchers(:to) unless matcher
31
+ with_wait do
32
+ PositiveHandler.handle_matcher(@target, matcher, message, &block)
33
+ end
31
34
  end
32
35
 
33
36
  # From: https://github.com/rspec/rspec-expectations/blob/v3.0.0/lib/rspec/expectations/expectation_target.rb#L66-L67
34
37
  def not_to(matcher = nil, message = nil, &block)
35
- prevent_operator_matchers(:not_to, matcher) unless matcher
36
- with_wait { NegativeHandler.handle_matcher(@target, matcher, message, &block) }
38
+ prevent_operator_matchers(:not_to) unless matcher
39
+ with_wait do
40
+ NegativeHandler.handle_matcher(@target, matcher, message, &block)
41
+ end
37
42
  end
38
43
 
39
- alias_method :to_not, :not_to
44
+ alias to_not not_to
40
45
 
41
46
  private
42
47
 
43
- def with_wait
44
- Wait.with_wait(@wait_options) { yield }
48
+ def with_wait(&block)
49
+ Wait.with_wait(@wait_options, &block)
45
50
  end
46
51
  end
47
52
  end
@@ -0,0 +1,9 @@
1
+ module RSpec
2
+ module Wait
3
+ VERSION = ::Gem::Version.new("0.0.10")
4
+
5
+ def self.version
6
+ VERSION
7
+ end
8
+ end
9
+ end
data/lib/rspec/wait.rb CHANGED
@@ -3,6 +3,7 @@ require "rspec/wait/error"
3
3
  require "rspec/wait/handler"
4
4
  require "rspec/wait/proxy"
5
5
  require "rspec/wait/target"
6
+ require "rspec/wait/version"
6
7
 
7
8
  module RSpec
8
9
  module Wait
@@ -40,7 +41,7 @@ RSpec.configure do |config|
40
41
  config.add_setting(:wait_delay, default: 0.1)
41
42
 
42
43
  config.around do |example|
43
- if options = example.metadata[:wait]
44
+ if (options = example.metadata[:wait])
44
45
  with_wait(options) { example.run }
45
46
  else
46
47
  example.run
data/rspec-wait.gemspec CHANGED
@@ -1,21 +1,42 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/rspec/wait/version"
2
4
 
3
5
  Gem::Specification.new do |spec|
4
- spec.name = "rspec-wait"
5
- spec.version = "0.0.9"
6
+ spec.name = "rspec-wait"
7
+ spec.summary = "Wait for conditions in RSpec"
8
+ spec.description = "RSpec::Wait enables time-resilient expectations in your RSpec test suite."
9
+ spec.version = RSpec::Wait::VERSION
10
+
11
+ spec.author = "Steve Richert"
12
+ spec.email = "steve.richert@hey.com"
13
+ spec.license = "MIT"
14
+ spec.homepage = "https://github.com/laserlemon/rspec-wait"
15
+
16
+ spec.metadata = {
17
+ "allowed_push_host" => "https://rubygems.org",
18
+ "bug_tracker_uri" => "https://github.com/laserlemon/rspec-wait/issues",
19
+ "funding_uri" => "https://github.com/sponsors/laserlemon",
20
+ "homepage_uri" => "https://github.com/laserlemon/rspec-wait",
21
+ "rubygems_mfa_required" => "true",
22
+ "source_code_uri" => "https://github.com/laserlemon/rspec-wait",
23
+ }
6
24
 
7
- spec.author = "Steve Richert"
8
- spec.email = "steve.richert@gmail.com"
9
- spec.summary = "Wait for conditions in RSpec"
10
- spec.description = spec.summary
11
- spec.homepage = "https://github.com/laserlemon/rspec-wait"
12
- spec.license = "MIT"
25
+ spec.required_ruby_version = ">= 2.2"
26
+ spec.add_dependency "rspec", ">= 3.0"
27
+ spec.add_development_dependency "bundler"
28
+ spec.add_development_dependency "rake"
13
29
 
14
- spec.files = `git ls-files -z`.split("\x0")
15
- spec.test_files = spec.files.grep(/^spec/)
30
+ spec.files = Dir.glob([
31
+ "rspec-wait.gemspec",
32
+ "lib/**/*.rb",
33
+ "LICENSE.txt",
34
+ ])
16
35
 
17
- spec.add_dependency "rspec", ">= 3", "< 4"
36
+ spec.extra_rdoc_files = ["README.md"]
18
37
 
19
- spec.add_development_dependency "bundler", "~> 1.12"
20
- spec.add_development_dependency "rake", "~> 11.2"
38
+ spec.post_install_message = <<-MSG
39
+ [rspec-wait] RSpec::Wait 1.0 has arrived! Please upgrade for the latest and greatest.
40
+ [rspec-wait] See what's changed here: https://github.com/laserlemon/rspec-wait/blob/-/CHANGELOG.md
41
+ MSG
21
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-wait
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Richert
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-11 00:00:00.000000000 Z
11
+ date: 2024-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -16,87 +16,71 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3'
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '4'
19
+ version: '3.0'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: '3'
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '4'
26
+ version: '3.0'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: bundler
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
- - - "~>"
31
+ - - ">="
38
32
  - !ruby/object:Gem::Version
39
- version: '1.12'
33
+ version: '0'
40
34
  type: :development
41
35
  prerelease: false
42
36
  version_requirements: !ruby/object:Gem::Requirement
43
37
  requirements:
44
- - - "~>"
38
+ - - ">="
45
39
  - !ruby/object:Gem::Version
46
- version: '1.12'
40
+ version: '0'
47
41
  - !ruby/object:Gem::Dependency
48
42
  name: rake
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
- - - "~>"
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
- version: '11.2'
47
+ version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
51
  requirements:
58
- - - "~>"
52
+ - - ">="
59
53
  - !ruby/object:Gem::Version
60
- version: '11.2'
61
- description: Wait for conditions in RSpec
62
- email: steve.richert@gmail.com
54
+ version: '0'
55
+ description: RSpec::Wait enables time-resilient expectations in your RSpec test suite.
56
+ email: steve.richert@hey.com
63
57
  executables: []
64
58
  extensions: []
65
- extra_rdoc_files: []
59
+ extra_rdoc_files:
60
+ - README.md
66
61
  files:
67
- - ".gitignore"
68
- - ".rspec"
69
- - ".travis.yml"
70
- - CHANGELOG.md
71
- - CONTRIBUTING.md
72
- - Gemfile
73
62
  - LICENSE.txt
74
63
  - README.md
75
- - Rakefile
76
- - gemfiles/rspec_2_11.gemfile
77
- - gemfiles/rspec_2_12.gemfile
78
- - gemfiles/rspec_2_13.gemfile
79
- - gemfiles/rspec_2_14.gemfile
80
- - gemfiles/rspec_3_0.gemfile
81
- - gemfiles/rspec_3_1.gemfile
82
- - gemfiles/rspec_3_2.gemfile
83
- - gemfiles/rspec_3_3.gemfile
84
- - gemfiles/rspec_3_4.gemfile
85
- - gemfiles/rspec_3_5.gemfile
86
64
  - lib/rspec/wait.rb
87
65
  - lib/rspec/wait/error.rb
88
66
  - lib/rspec/wait/handler.rb
89
67
  - lib/rspec/wait/proxy.rb
90
68
  - lib/rspec/wait/target.rb
69
+ - lib/rspec/wait/version.rb
91
70
  - rspec-wait.gemspec
92
- - spec/spec_helper.rb
93
- - spec/wait_for_spec.rb
94
- - spec/wait_spec.rb
95
71
  homepage: https://github.com/laserlemon/rspec-wait
96
72
  licenses:
97
73
  - MIT
98
- metadata: {}
99
- post_install_message:
74
+ metadata:
75
+ allowed_push_host: https://rubygems.org
76
+ bug_tracker_uri: https://github.com/laserlemon/rspec-wait/issues
77
+ funding_uri: https://github.com/sponsors/laserlemon
78
+ homepage_uri: https://github.com/laserlemon/rspec-wait
79
+ rubygems_mfa_required: 'true'
80
+ source_code_uri: https://github.com/laserlemon/rspec-wait
81
+ post_install_message: |
82
+ [rspec-wait] RSpec::Wait 1.0 has arrived! Please upgrade for the latest and greatest.
83
+ [rspec-wait] See what's changed here: https://github.com/laserlemon/rspec-wait/blob/-/CHANGELOG.md
100
84
  rdoc_options: []
101
85
  require_paths:
102
86
  - lib
@@ -104,19 +88,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
88
  requirements:
105
89
  - - ">="
106
90
  - !ruby/object:Gem::Version
107
- version: '0'
91
+ version: '2.2'
108
92
  required_rubygems_version: !ruby/object:Gem::Requirement
109
93
  requirements:
110
94
  - - ">="
111
95
  - !ruby/object:Gem::Version
112
96
  version: '0'
113
97
  requirements: []
114
- rubyforge_project:
115
- rubygems_version: 2.4.8
116
- signing_key:
98
+ rubygems_version: 3.4.10
99
+ signing_key:
117
100
  specification_version: 4
118
101
  summary: Wait for conditions in RSpec
119
- test_files:
120
- - spec/spec_helper.rb
121
- - spec/wait_for_spec.rb
122
- - spec/wait_spec.rb
102
+ test_files: []
data/.gitignore DELETED
@@ -1,15 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /gemfiles/*.lock
5
- /_yardoc/
6
- /coverage/
7
- /doc/
8
- /pkg/
9
- /spec/reports/
10
- /tmp/
11
- *.bundle
12
- *.so
13
- *.o
14
- *.a
15
- mkmf.log
data/.rspec DELETED
@@ -1,4 +0,0 @@
1
- --color
2
- --format documentation
3
- --order random
4
- --require spec_helper
data/.travis.yml DELETED
@@ -1,29 +0,0 @@
1
- before_install:
2
- - gem update bundler rake
3
- branches:
4
- only:
5
- - master
6
- cache: bundler
7
- env:
8
- global:
9
- - secure: | # CODECLIMATE_REPO_TOKEN
10
- lK3tYDk/63jRamEfGKbC27mPAoV7XsebCurx6doeisv1r4926lyPY4B9ZoSu
11
- OeVmjXQWHX9U7IgPH1C+zoIh1wVHVA8h5FVuqlGUMlA6IJi2xaI+ChEo3WeD
12
- FRlk1Q5fGhgp1mt59sMn3GZZ/mv31v+sd9iYC3AVIM0KrlMGGZQ=
13
- gemfile:
14
- - gemfiles/rspec_3_0.gemfile
15
- - gemfiles/rspec_3_1.gemfile
16
- - gemfiles/rspec_3_2.gemfile
17
- - gemfiles/rspec_3_3.gemfile
18
- - gemfiles/rspec_3_4.gemfile
19
- - gemfiles/rspec_3_5.gemfile
20
- language: ruby
21
- matrix:
22
- allow_failures:
23
- - rvm: ruby-head
24
- rvm:
25
- - 2.1.10
26
- - 2.2.5
27
- - 2.3.1
28
- - ruby-head
29
- sudo: false
data/CHANGELOG.md DELETED
@@ -1,33 +0,0 @@
1
- ## 0.0.8 / 2015-11-14
2
-
3
- * [ENHANCEMENT] Add support for RSpec 3.4
4
-
5
- ## 0.0.7 / 2015-06-16
6
-
7
- * [ENHANCEMENT] Add support for RSpec 3.3
8
-
9
- ## 0.0.6 / 2015-06-12
10
-
11
- * [BUGFIX] Fix the `to_not` alias in cases where the condition is not met
12
-
13
- ## 0.0.5 / 2015-01-04
14
-
15
- * [ENHANCEMENT] Add support for RSpec 3.2
16
-
17
- ## 0.0.4 / 2014-12-18
18
-
19
- * [FEATURE] Make RSpec::Wait's timeout and delay values configurable
20
- * [FEATURE] Add the wait(3.seconds).for { something }.to(happen) syntax sugar
21
-
22
- ## 0.0.3 / 2014-10-29
23
-
24
- * [ENHANCEMENT] Add support for RSpec 3.1
25
-
26
- ## 0.0.2 / 2014-06-11
27
-
28
- * [ENHANCEMENT] Allow `wait_for` to accept either a value or block target
29
- * [BUGFIX] Ensure blocks are re-evaluated with each iteration
30
-
31
- ## 0.0.1 / 2014-04-19
32
-
33
- * Initial release!
data/CONTRIBUTING.md DELETED
@@ -1,48 +0,0 @@
1
- # Contributing to RSpec::Wait
2
-
3
- RSpec::Wait is open source and contributions from the community are encouraged!
4
- No contribution is too small.
5
-
6
- Please consider:
7
-
8
- * Adding a feature
9
- * Squashing a bug
10
- * Writing documentation
11
- * Fixing a typo
12
- * Correcting [style](https://github.com/styleguide/ruby)
13
-
14
- ## How do I contribute?
15
-
16
- For the best chance of having your changes merged, please:
17
-
18
- 1. [Fork](https://github.com/laserlemon/rspec-wait/fork) the project.
19
- 2. [Write](http://en.wikipedia.org/wiki/Test-driven_development) a failing test.
20
- 3. [Commit](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) changes that fix the tests.
21
- 4. [Submit](https://github.com/laserlemon/rspec-wait/pulls) a pull request with *at least* one animated GIF.
22
- 5. Be patient.
23
-
24
- If your proposed changes only affect documentation, include the following on a
25
- new line in each of your commit messages:
26
-
27
- ```
28
- [ci skip]
29
- ```
30
-
31
- This will signal [Travis](https://travis-ci.org) that running the test suite is
32
- not necessary for these changes.
33
-
34
- ## Bug Reports
35
-
36
- If you are experiencing unexpected behavior and, after having read RSpec::Wait's
37
- documentation, are convinced this behavior is a bug, please:
38
-
39
- 1. [Search](https://github.com/laserlemon/rspec-wait/issues) existing issues.
40
- 2. Collect enough information to reproduce the issue:
41
- * RSpec::Wait version
42
- * Ruby version
43
- * RSpec version
44
- * Specific setup conditions
45
- * Description of expected behavior
46
- * Description of actual behavior
47
- 3. [Submit](https://github.com/laserlemon/rspec-wait/issues/new) an issue.
48
- 4. Be patient.
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
data/Rakefile DELETED
@@ -1,6 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- task default: :spec
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rspec", "~> 2.11.0"
6
-
7
- group :test do
8
- gem "codeclimate-test-reporter", require: false
9
- end
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rspec", "~> 2.12.0"
6
-
7
- group :test do
8
- gem "codeclimate-test-reporter", require: false
9
- end
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rspec", "~> 2.13.0"
6
-
7
- group :test do
8
- gem "codeclimate-test-reporter", require: false
9
- end
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rspec", "~> 2.14.0"
6
-
7
- group :test do
8
- gem "codeclimate-test-reporter", require: false
9
- end
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rspec", "~> 3.0.0"
6
-
7
- group :test do
8
- gem "codeclimate-test-reporter", require: false
9
- end
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rspec", "~> 3.1.0"
6
-
7
- group :test do
8
- gem "codeclimate-test-reporter", require: false
9
- end
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rspec", "~> 3.2.0"
6
-
7
- group :test do
8
- gem "codeclimate-test-reporter", require: false
9
- end
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rspec", "~> 3.3.0"
6
-
7
- group :test do
8
- gem "codeclimate-test-reporter", require: false
9
- end
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rspec", "~> 3.4.0"
6
-
7
- group :test do
8
- gem "codeclimate-test-reporter", require: false
9
- end
@@ -1,9 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec path: ".."
4
-
5
- gem "rspec", "~> 3.5.0"
6
-
7
- group :test do
8
- gem "codeclimate-test-reporter", require: false
9
- end
data/spec/spec_helper.rb DELETED
@@ -1,6 +0,0 @@
1
- if ENV["CODECLIMATE_REPO_TOKEN"]
2
- require "codeclimate-test-reporter"
3
- CodeClimate::TestReporter.start
4
- end
5
-
6
- require "rspec/wait"
@@ -1,162 +0,0 @@
1
- describe "wait_for" do
2
- let!(:progress) { "" }
3
-
4
- before do
5
- Thread.new do
6
- 2.times do
7
- sleep 1
8
- progress << "."
9
- end
10
- end
11
- end
12
-
13
- context "to" do
14
- it "passes immediately" do
15
- expect {
16
- wait_for { progress }.to eq("")
17
- }.not_to raise_error
18
- end
19
-
20
- it "waits for the matcher to pass" do
21
- expect {
22
- wait_for { progress }.to eq(".")
23
- }.not_to raise_error
24
- end
25
-
26
- it "re-evaluates the actual value" do
27
- expect {
28
- wait_for { progress.dup }.to eq(".")
29
- }.not_to raise_error
30
- end
31
-
32
- it "fails if the matcher never passes" do
33
- expect {
34
- wait_for { progress }.to eq("...")
35
- }.to raise_error(RSpec::Expectations::ExpectationNotMetError)
36
- end
37
-
38
- it "times out if the block never finishes" do
39
- expect {
40
- wait_for { sleep 11; progress }.to eq("..")
41
- }.to raise_error(RSpec::Wait::TimeoutError)
42
- end
43
-
44
- it "respects a timeout specified in configuration" do
45
- original_timeout = RSpec.configuration.wait_timeout
46
- RSpec.configuration.wait_timeout = 3
47
-
48
- begin
49
- expect {
50
- wait_for { sleep 4; progress }.to eq("..")
51
- }.to raise_error(RSpec::Wait::TimeoutError)
52
- ensure
53
- RSpec.configuration.wait_timeout = original_timeout
54
- end
55
- end
56
-
57
- it "respects a timeout specified in options", wait: { timeout: 3 } do
58
- expect {
59
- wait_for { sleep 4; progress }.to eq("..")
60
- }.to raise_error(RSpec::Wait::TimeoutError)
61
- end
62
-
63
- it "raises an error occuring in the block" do
64
- expect {
65
- wait_for { raise RuntimeError }.to eq("..")
66
- }.to raise_error(RuntimeError)
67
- end
68
-
69
- it "prevents operator matchers" do
70
- expect {
71
- wait_for { progress }.to == "."
72
- }.to raise_error(ArgumentError)
73
- end
74
-
75
- it "accepts a value rather than a block" do
76
- expect {
77
- wait_for(progress).to eq(".")
78
- }.not_to raise_error
79
- end
80
- end
81
-
82
- context "not_to" do
83
- it "passes immediately" do
84
- expect {
85
- wait_for { progress }.not_to eq("..")
86
- }.not_to raise_error
87
- end
88
-
89
- it "waits for the matcher not to pass" do
90
- expect {
91
- wait_for { progress }.not_to eq("")
92
- }.not_to raise_error
93
- end
94
-
95
- it "re-evaluates the actual value" do
96
- expect {
97
- wait_for { progress.dup }.not_to eq("")
98
- }.not_to raise_error
99
- end
100
-
101
- it "fails if the matcher always passes" do
102
- expect {
103
- wait_for { progress }.not_to be_a(String)
104
- }.to raise_error(RSpec::Expectations::ExpectationNotMetError)
105
- end
106
-
107
- it "times out if the block never finishes" do
108
- expect {
109
- wait_for { sleep 11; progress }.not_to eq("..")
110
- }.to raise_error(RSpec::Wait::TimeoutError)
111
- end
112
-
113
- it "respects a timeout specified in configuration" do
114
- original_timeout = RSpec.configuration.wait_timeout
115
- RSpec.configuration.wait_timeout = 3
116
-
117
- begin
118
- expect {
119
- wait_for { sleep 4; progress }.not_to eq("..")
120
- }.to raise_error(RSpec::Wait::TimeoutError)
121
- ensure
122
- RSpec.configuration.wait_timeout = original_timeout
123
- end
124
- end
125
-
126
- it "respects a timeout specified in options", wait: { timeout: 3 } do
127
- expect {
128
- wait_for { sleep 4; progress }.not_to eq("..")
129
- }.to raise_error(RSpec::Wait::TimeoutError)
130
- end
131
-
132
- it "raises an error occuring in the block" do
133
- expect {
134
- wait_for { raise RuntimeError }.not_to eq("")
135
- }.to raise_error(RuntimeError)
136
- end
137
-
138
- it "respects the to_not alias when expectation is met" do
139
- expect {
140
- wait_for { true }.to_not eq(false)
141
- }.not_to raise_error
142
- end
143
-
144
- it "respects the to_not alias when expectation is not met" do
145
- expect {
146
- wait_for { true }.to_not eq(true)
147
- }.to raise_error(RSpec::Expectations::ExpectationNotMetError)
148
- end
149
-
150
- it "prevents operator matchers" do
151
- expect {
152
- wait_for { progress }.not_to == ".."
153
- }.to raise_error(ArgumentError)
154
- end
155
-
156
- it "accepts a value rather than a block" do
157
- expect {
158
- wait_for(progress).not_to eq("..")
159
- }.not_to raise_error
160
- end
161
- end
162
- end
data/spec/wait_spec.rb DELETED
@@ -1,176 +0,0 @@
1
- describe "wait" do
2
- let!(:progress) { "" }
3
-
4
- before do
5
- Thread.new do
6
- 2.times do
7
- sleep 1
8
- progress << "."
9
- end
10
- end
11
- end
12
-
13
- context "for" do
14
- context "to" do
15
- it "passes immediately" do
16
- expect {
17
- wait.for { progress }.to eq("")
18
- }.not_to raise_error
19
- end
20
-
21
- it "waits for the matcher to pass" do
22
- expect {
23
- wait.for { progress }.to eq(".")
24
- }.not_to raise_error
25
- end
26
-
27
- it "re-evaluates the actual value" do
28
- expect {
29
- wait.for { progress.dup }.to eq(".")
30
- }.not_to raise_error
31
- end
32
-
33
- it "fails if the matcher never passes" do
34
- expect {
35
- wait.for { progress }.to eq("...")
36
- }.to raise_error(RSpec::Expectations::ExpectationNotMetError)
37
- end
38
-
39
- it "times out if the block never finishes" do
40
- expect {
41
- wait.for { sleep 11; progress }.to eq("..")
42
- }.to raise_error(RSpec::Wait::TimeoutError)
43
- end
44
-
45
- it "respects a timeout specified in configuration" do
46
- original_timeout = RSpec.configuration.wait_timeout
47
- RSpec.configuration.wait_timeout = 3
48
-
49
- begin
50
- expect {
51
- wait.for { sleep 4; progress }.to eq("..")
52
- }.to raise_error(RSpec::Wait::TimeoutError)
53
- ensure
54
- RSpec.configuration.wait_timeout = original_timeout
55
- end
56
- end
57
-
58
- it "respects a timeout specified in options", wait: { timeout: 3 } do
59
- expect {
60
- wait.for { sleep 4; progress }.to eq("..")
61
- }.to raise_error(RSpec::Wait::TimeoutError)
62
- end
63
-
64
- it "respects a timeout specified as an argument" do
65
- expect {
66
- wait(3).for { sleep 4; progress }.to eq("..")
67
- }.to raise_error(RSpec::Wait::TimeoutError)
68
- end
69
-
70
- it "raises an error occuring in the block" do
71
- expect {
72
- wait.for { raise RuntimeError }.to eq("..")
73
- }.to raise_error(RuntimeError)
74
- end
75
-
76
- it "prevents operator matchers" do
77
- expect {
78
- wait.for { progress }.to == "."
79
- }.to raise_error(ArgumentError)
80
- end
81
-
82
- it "accepts a value rather than a block" do
83
- expect {
84
- wait.for(progress).to eq(".")
85
- }.not_to raise_error
86
- end
87
- end
88
-
89
- context "not_to" do
90
- it "passes immediately" do
91
- expect {
92
- wait.for { progress }.not_to eq("..")
93
- }.not_to raise_error
94
- end
95
-
96
- it "waits for the matcher not to pass" do
97
- expect {
98
- wait.for { progress }.not_to eq("")
99
- }.not_to raise_error
100
- end
101
-
102
- it "re-evaluates the actual value" do
103
- expect {
104
- wait.for { progress.dup }.not_to eq("")
105
- }.not_to raise_error
106
- end
107
-
108
- it "fails if the matcher always passes" do
109
- expect {
110
- wait.for { progress }.not_to be_a(String)
111
- }.to raise_error(RSpec::Expectations::ExpectationNotMetError)
112
- end
113
-
114
- it "times out if the block never finishes" do
115
- expect {
116
- wait.for { sleep 11; progress }.not_to eq("..")
117
- }.to raise_error(RSpec::Wait::TimeoutError)
118
- end
119
-
120
- it "respects a timeout specified in configuration" do
121
- original_timeout = RSpec.configuration.wait_timeout
122
- RSpec.configuration.wait_timeout = 3
123
-
124
- begin
125
- expect {
126
- wait.for { sleep 4; progress }.not_to eq("..")
127
- }.to raise_error(RSpec::Wait::TimeoutError)
128
- ensure
129
- RSpec.configuration.wait_timeout = original_timeout
130
- end
131
- end
132
-
133
- it "respects a timeout specified in options", wait: { timeout: 3 } do
134
- expect {
135
- wait.for { sleep 4; progress }.not_to eq("..")
136
- }.to raise_error(RSpec::Wait::TimeoutError)
137
- end
138
-
139
- it "respects a timeout specified as an argument" do
140
- expect {
141
- wait(3).for { sleep 4; progress }.not_to eq("..")
142
- }.to raise_error(RSpec::Wait::TimeoutError)
143
- end
144
-
145
- it "raises an error occuring in the block" do
146
- expect {
147
- wait.for { raise RuntimeError }.not_to eq("")
148
- }.to raise_error(RuntimeError)
149
- end
150
-
151
- it "respects the to_not alias when expectation is met" do
152
- expect {
153
- wait(1).for { true }.to_not eq(false)
154
- }.not_to raise_error
155
- end
156
-
157
- it "respects the to_not alias when expectation is not met" do
158
- expect {
159
- wait(1).for { true }.to_not eq(true)
160
- }.to raise_error(RSpec::Expectations::ExpectationNotMetError)
161
- end
162
-
163
- it "prevents operator matchers" do
164
- expect {
165
- wait.for { progress }.not_to == ".."
166
- }.to raise_error(ArgumentError)
167
- end
168
-
169
- it "accepts a value rather than a block" do
170
- expect {
171
- wait.for(progress).not_to eq("..")
172
- }.not_to raise_error
173
- end
174
- end
175
- end
176
- end