spec/command/plugins_spec.rb in cocoapods-plugins-0.1.0 vs spec/command/plugins_spec.rb in cocoapods-plugins-0.1.1

- old
+ new

@@ -2,120 +2,19 @@ # The CocoaPods namespace # module Pod describe Command::Plugins do - before do argv = CLAide::ARGV.new([]) @command = Command::Plugins.new(argv) end - it "registers it self" do - Command.parse(%w(plugins)).should.be.instance_of Command::Plugins + it 'registers itself and uses the default subcommand' do + Command.parse(%w(plugins)).should.be.instance_of Command::Plugins::List end - it "exists" do + it 'exists' do @command.should.not.be.nil? end - - it "has a json attribute that starts out nil" do - @command.json.should.be.nil? - end - - it "downloads the json file" do - json = File.read(fixture('plugins.json')) - stub_request(:get, Command::Plugins::PLUGINS_URL).to_return(:status => 200, :body => json, :headers => {}) - @command.download_json - @command.json.should.not.be.nil? - @command.json.should.be.kind_of? Hash - @command.json['plugins'].size.should.eql? 2 - end - - it "handles empty/bad JSON" do - stub_request(:get, Command::Plugins::PLUGINS_URL).to_return(:status => 200, :body => "This is not JSON", :headers => {}) - @command.run - UI.output.should.include("Could not download plugins list from cocoapods.org") - @command.json.should.be.nil? - end - - it "notifies the user if the download fails" do - stub_request(:get, Command::Plugins::PLUGINS_URL).to_return(:status => [404, "Not Found"]) - @command.run - UI.output.should.include("Could not download plugins list from cocoapods.org") - @command.json.should.be.nil? - end - - it "prints out each plugin" do - json_fixture = fixture('plugins.json') - @json = JSON.parse(File.read(json_fixture)) - @command.json = @json - @command.run - UI.output.should.include("github.com/CocoaPods/cocoapods-fake") - UI.output.should.include("github.com/chneukirchen/bacon") - end - - it "detects if a gem is installed" do - @command.installed?("bacon").should.be.true - @command.installed?("fake-fake-fake-gem").should.be.false - end - end - - describe Command::Plugins::Create do - extend SpecHelper::PluginCreateCommand - - it "registers itself" do - Command.parse(%w(plugins create)).should.be.instance_of Command::Plugins::Create - end - - it "should require a name is passed in" do - @command = create_command(argv) - # rubocop:disable Lambda - lambda { @command.validate! } - .should.raise(CLAide::Help) - .message.should.match(/A name for the plugin is required./) - # rubocop:enable Lambda - end - - it "should require a non-empty name is passed in" do - @command = create_command(argv("")) - # rubocop:disable Lambda - lambda { @command.validate! } - .should.raise(CLAide::Help) - .message.should.match(/A name for the plugin is required./) - # rubocop:enable Lambda - end - - it "should require the name does not have spaces" do - @command = create_command(argv("my gem")) - # rubocop:disable Lambda - lambda { @command.validate! } - .should.raise(CLAide::Help) - .message.should.match(/The plugin name cannot contain spaces./) - # rubocop:enable Lambda - end - - it "should download the default template repository" do - @command = create_command(argv("cocoapods-banana")) - # @command = Command::Plugins::Create.new(argv("cocoapods-banana")) - - git_command = "clone 'https://github.com/CocoaPods/cocoapods-plugin-template.git' cocoapods-banana" - @command.expects(:git!).with(git_command) - @command.expects(:configure_template) - @command.run - UI.output.should.include("Creating `cocoapods-banana` plugin") - end - - it "should download the passed in template repository" do - alt_repository = "https://github.com/CocoaPods/cocoapods-banana-plugin-template.git" - @command = create_command(argv("cocoapods-banana", alt_repository)) - - @command.expects(:git!).with("clone '#{alt_repository}' cocoapods-banana") - @command.expects(:configure_template) - @command.run - UI.output.should.include("Creating `cocoapods-banana` plugin") - end - - end - end