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.dirstate.branch = 'new_branch'
    
    # Save it
    repo.commit :message => 'added a new branch'
  end
  
  b.success do
    repo.update 'default'
    repo[nil].branch == 'default' # repo[nil] is the working directory's changeset
  end
  
  b.cleanup { FileUtils.rm_rf Dir['test_*'] } # destory all similar looking dirs
end