spec/tests/bin/hexx_spec.rb in hexx-9.0.1 vs spec/tests/bin/hexx_spec.rb in hexx-9.1.0
- old
+ new
@@ -1,34 +1,67 @@
# encoding: utf-8
+require "hexx-dependencies"
require "hexx-validators"
+require "policy/cli"
+require "service_objects/cli"
describe "$ hexx", :sandbox do
- shared_examples "specific scaffolder" do
- # subject command, its arguments and generator should be defined in context
+ shared_examples "running scaffolder" do |generator|
- let!(:expected_output) do
+ let!(:expected) do
+ prepare_sandbox
capture_stdout { try_in_sandbox { generator.start(arguments) } }
end
- let!(:actual_output) do
+ let!(:actual) do
prepare_sandbox
try_in_sandbox { return `#{ [:hexx, subject, arguments].join(" ") }` }
end
it "[starts the generator]" do
- expect(actual_output).to eq expected_output
+ expect(actual).to eq expected
end
- end
+ end # shared_examples
+
context "validator" do
subject { :validator }
- it_behaves_like "specific scaffolder" do
+ it_behaves_like "running scaffolder", Hexx::Validators::Generator do
let(:arguments) { %w(in_future -e not_in_future -o allow_nil) }
- let(:generator) { Hexx::Validators::Generator }
end
end # validator
+
+ context "policy" do
+
+ subject { :policy }
+
+ it_behaves_like "running scaffolder", Policy::CLI do
+ let(:arguments) { %w(consistency -a debet credit -l en fr) }
+ end
+
+ end # policy
+
+ context "dependency" do
+
+ subject { :dependency }
+
+ it_behaves_like "running scaffolder", Hexx::Dependencies::CLI do
+ let(:arguments) { %w(user_model -g users -i user) }
+ end
+
+ end # dependency
+
+ context "service" do
+
+ subject { :service }
+
+ it_behaves_like "running scaffolder", ServiceObjects::CLI do
+ let(:arguments) { %w(get_item -p name -n found:item -l ua) }
+ end
+
+ end # service
end # describe $ hexx