New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix broken build #1471
Fix broken build #1471
Conversation
Related to #1455 |
The mini_racer gem requires Ruby 2.3 or greater so the TravisCI build for Ruby 2.2 was failing.
Thanks @dentarg. I'm updating this PR to replace |
@jkowens Replacement mini_racer with therubyracer looks reasonable, but the changes of cookie spec seems weird. |
@@ -559,7 +559,7 @@ def cookies(*set_cookies) | |||
it 'checks response cookies' do | |||
jar = cookies | |||
jar['foo'] = 'bar' | |||
expect(jar).to include(:foo) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sinatra::Cookies
behaves like a Hash. I'm wondering if there was a change that prevents it from acting like an IndifferentHash
? If this is just a regular hash, 'foo' and :foo are different keys.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd say that this spec ensure that the cookie should behave like a indifferent hash, right?
Your change doesn't look like essential solve.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, it does look like that was what it was trying to ensure. However, that is not made clear by the spec description. Technically, it should only be ensuring that include checks the response cookie for 'foo'. If Sinatra::Cookies
should behave like IndifferentHash
I think a spec that makes that desired behavior explicitly clear should be added. Along with that spec, an update that makes it pass would be good...if that's really what is wanted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The built-in include matcher calls to_hash
on Sinatra::Cookies
which returns a regular Hash
. So to test this it would have to either be:
expect(jar.include?(:foo)).to be true
or
expect(jar).to include('foo')
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You needed to investigate the problem more deeply.
Please take a look at the rspec issue.
The backword-compatibility breaking isn't intentional, and the original issue was closed by this patch.
However, our problem hasn't been fixed by that because Sinatra::Cookies::Jar
doesn't inherit Hash
.
The patch seems not to be enough for fixing the breaking.
I think this is the rspec issue, so once I'll try to fix our failure spec by changing our spec.
@jkowens If you're going to send a PR for the spec improvement, please open new PR instead of this. |
The latest version of
mini_racer
does not support ruby 2.2 so that build was failing. There was also a brokenSinatra::Cookie
spec that I'm wondering if is related to changes toSinatra::IndifferentHash
.cc: @mwpastore @namusyaka