Source

amp / bugs / 22.rb

Full commit
require 'fileutils'



Amp::Bug.new do |b|
  dir  = "test_#{rand(1000)}"
  repo = nil # scoping
  
  b.number  22
  
  # hint, because the functionality isn't there
  b.desc    "`amp update` fails to switch between branches"
  
  b.setup do
    # Create the repo
    repo = Amp::Repositories::Mercurial::LocalRepository.new dir, true
    
    # Add a file (Ampfile is automatically created upon repo initialization)
    repo.staging_area.add 'Ampfile'
    
    # Commit
    repo.commit :modified => ['Ampfile'], :message => 'initial commit'
    
    # Create a new branch
    repo[nil].branch = 'new_branch'
    
    # Save it
    repo.commit :message => 'added a new branch'
  end
  
  b.success do
    b.capture_stdout do
      repo.update 'default'
      repo[nil].branch == 'default' # repo[nil] is the working directory's changeset
      # in theory, `repo.staging_area.branch` should do the same
    end
  end
  
  b.cleanup { FileUtils.rm_rf Dir['test_*'] } # destory all similar looking dirs
end