First attempting to use Capybara directly, you will ran into issues when trying to set HTTP header. Using Basic HTTP Authentication requires that we needed to set the header. Also we need to set the Content-Type and Accept headers to ensure that Rails handles the input and output correctly. When using Rack, Capybara delegates request and response handling down to Rack::Test. So I used Rack::Test directly in my step definitions, and it works. Rack::Test has a module called Rack::Test::Methods that can be mixed into a class to provide it with methods for get, post, put, delete as well as last_request, last_response, header and more. I mixed Rack::Test::Methods into the Cucumber world at the top of our API steps file like so:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# st_repeat HELP: | |
# st_repeat [-d <delay>] [-i] [-c <count>] [-k] <command> | |
# Repeat the given command. | |
# | |
# By default, this command will exit upon success, unless -i or -c are given. | |
# | |
# -d (default 2) specifies how long to wait between iterations | |
# -i will repeat the command indefinitely |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
function actual_path() { | |
if [ [ -z "$1" ] -a [ -d $1 ] ]; then | |
echo $(cd $1 && test `pwd` = `pwd -P`) | |
return 0 | |
else | |
return 1 | |
fi | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/zsh | |
function actual_path() { | |
if [ [ -z "$1" ] -a [ -d $1 ] ]; then | |
echo $(cd $1 && test `pwd` = `pwd -P`) | |
return 0 | |
else | |
return 1 | |
fi | |
} |
NewerOlder