Sha256: 08cc1cc75b3c9d8412ad4f3094621de5868f5356006d03cd8d9e8e4e1e5bb14f

Contents?: true

Size: 1.26 KB

Versions: 2

Compression:

Stored size: 1.26 KB

Contents

require 'spec_helper'
require 'squib'

describe  Squib::Commands::New do 

  describe "#process" do 
    before(:all) do
      @old_stderr = $stderr
      $stderr = StringIO.new
      @oldpwd = Dir.pwd
      Dir.chdir(File.expand_path('../../samples/_output', File.dirname(__FILE__)))
    end

    before(:each) do
      FileUtils.rm_rf('foo', secure: true)
      @cmd = Squib::Commands::New.new
    end

    it "raises an error if no directory was specified" do
      expect{@cmd.process([])}.to raise_error(ArgumentError, 'Please specify a path.')
    end

    it "creates a new template on an fresh directory" do
      @cmd.process(['foo'])
      expect(File.exists?('foo/deck.rb')).to be true
    end

    it "creates a new template on an empty directory" do
      Dir.mkdir('foo')
      @cmd.process(['foo'])
      expect(File.exists?('foo/deck.rb')).to be true
    end

    it "does not create a new template on an empty " do
      Dir.mkdir('foo')
      File.new('foo/somefile.txt', 'w+')
      @cmd.process(['foo'])
      $stderr.rewind
      expect($stderr.string.chomp).to end_with " exists and is not empty. Doing nothing and quitting."
    end

    after(:all) do
      $stderr = @old_stderr
      Dir.chdir(@oldpwd)
    end
end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
squib-0.0.4 spec/commands/new_spec.rb
squib-0.0.2 spec/commands/new_spec.rb