1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
Feature: After command hooks
You can configure Aruba to run blocks of code after it has run
a command. The command will be passed to the block.
You can hook into Aruba's lifecycle just before it runs a command and after it has run the command:
```ruby
Aruba.configure do |config|
config.after :command do |cmd|
puts "After the run of '#{cmd}'"
end
end
```
Background:
Given I use a fixture named "cli-app"
Scenario: Run a simple command with an "after(:command)"-hook
Given a file named "spec/support/hooks.rb" with:
"""
require 'aruba'
Aruba.configure do |config|
config.after :command do |cmd|
puts "after the run of `#{cmd.commandline}`"
end
end
"""
And a file named "spec/hook_spec.rb" with:
"""
require 'spec_helper'
RSpec.describe 'Hooks', :type => :aruba do
before(:each) { run_command_and_stop 'echo running' }
it { expect(last_command_started.stdout.chomp).to eq 'running' }
end
"""
When I run `rspec`
Then the specs should all pass
And the output should contain:
"""
after the run of `echo running`
"""
|