Sha256: 0a626ab6bbe845dba83814cb567a14aaaf1651b8ccfe2d63ad5af5b81a8b262c

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 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

1 entries across 1 versions & 1 rubygems

Version Path
squib-0.0.3 spec/commands/new_spec.rb