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