spec/git_gsub_spec.rb in git-gsub-0.0.5 vs spec/git_gsub_spec.rb in git-gsub-0.0.6
- old
+ new
@@ -2,53 +2,81 @@
require 'tmpdir'
require 'git/gsub'
require 'pry'
describe 'git-gsub' do
- def run_in_directory_with_a_file content
+ def run_in_directory_with_a_file(filename, content)
Dir.mktmpdir do |dir|
- filename = "FOO"
Dir.chdir dir do
+ dirname = File.dirname(filename)
+ FileUtils.mkdir_p(dirname) unless File.exists?(dirname)
File.open(filename, 'w') { |f| f << content }
`git init`
`git config --local user.email "you@example.com"`
`git config --local user.name "Your Name"`
`git add .`
`git commit -m init`
- yield filename
+ yield
end
end
end
it 'should substitute files' do
- run_in_directory_with_a_file "Git Subversion Bzr" do |filename|
- Git::Gsub.gsub "Bzr", "Mercurial"
- file = File.read(filename).chomp
- expect(file).to eq "Git Subversion Mercurial"
+ run_in_directory_with_a_file 'README.md', 'Git Subversion Bzr' do
+ Git::Gsub.run %w[Bzr Mercurial]
+ expect(File.read('README.md')).to eq 'Git Subversion Mercurial'
end
end
- it 'should escape well' do
- run_in_directory_with_a_file %|<h1 class="foo">| do |filename|
- Git::Gsub.gsub %|<h1 class="foo">|, %|<h1 class="bar">|
- file = File.read(filename).chomp
- expect(file).to eq %|<h1 class="bar">|
+ it 'should substitute files with case conversion' do
+ run_in_directory_with_a_file 'README.md', 'GitGsub git_gsub git-gsub' do
+ Git::Gsub.run %w[GitGsub SvnGsub --camel --kebab --snake]
+ expect(File.read('README.md')).to eq 'SvnGsub svn_gsub svn-gsub'
end
end
- it 'should raise error if second argument wasn\'t given' do
- run_in_directory_with_a_file "Git Subversion Bzr" do |filename|
- begin
- Git::Gsub.gsub "Bzr"
- rescue SystemExit => e
- expect(e.message).to match /No argument/
- end
+ it 'should escape well' do
+ run_in_directory_with_a_file 'README.md', %(<h1 class="foo">) do
+ Git::Gsub.run [%(<h1 class="foo">), %(<h1 class="bar">)]
+ expect(File.read('README.md')).to eq %(<h1 class="bar">)
end
+
+ run_in_directory_with_a_file 'README.md', %(git/gsub) do
+ Git::Gsub.run [%(git/gsub), %(svn/sub)]
+ expect(File.read('README.md')).to eq %(svn/sub)
+ end
+
+ run_in_directory_with_a_file 'README.md', %({git{svn}) do
+ Git::Gsub.run [%({git{svn}), %({hg{svn})]
+ expect(File.read('README.md')).to eq %({hg{svn})
+ end
end
it 'should not create backup file' do
- run_in_directory_with_a_file "Git Subversion Bzr" do |filename|
- Git::Gsub.gsub "Bzr", "Darcs"
- expect(`ls`).to eql "FOO\n"
+ run_in_directory_with_a_file 'README.md', 'Git Subversion Bzr' do
+ Git::Gsub.run %w[Bzr Darcs]
+ expect(`ls`).to eql "README.md\n"
+ end
+ end
+
+ it 'should rename with --rename' do
+ run_in_directory_with_a_file 'README-git_gsub.md', 'GitGsub git_gsub git-gsub' do
+ Git::Gsub.run %w[GitGsub SvnGsub --snake --rename]
+ expect(`ls`).to eql "README-svn_gsub.md\n"
+ expect(File.read('README-svn_gsub.md')).to eq 'SvnGsub svn_gsub git-gsub'
+ end
+
+ run_in_directory_with_a_file 'lib/git.rb', 'puts "Git"' do
+ Git::Gsub.run %w[git svn --camel --rename]
+ expect(`ls lib`).to eql "svn.rb\n"
+ expect(File.read('lib/svn.rb')).to eq 'puts "Svn"'
+ end
+ end
+
+ it 'should do nothing if no file found' do
+ run_in_directory_with_a_file 'README-git_gsub.md', 'GitGsub git_gsub git-gsub' do
+ expect {
+ Git::Gsub.run %w[Atlanta Chicago --snake --rename]
+ }.not_to raise_error
end
end
end