45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| RSpec.describe Cask::Artifact::BashCompletion, :cask do
 | |
|   let(:cask) { Cask::CaskLoader.load(cask_token) }
 | |
| 
 | |
|   context "with install" do
 | |
|     let(:install_phase) do
 | |
|       lambda do
 | |
|         cask.artifacts.select { |a| a.is_a?(described_class) }.each do |artifact|
 | |
|           artifact.install_phase(command: NeverSudoSystemCommand, force: false)
 | |
|         end
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     let(:source_path) { cask.staged_path.join("test.bash") }
 | |
|     let(:target_path) { cask.config.bash_completion.join("test") }
 | |
|     let(:full_source_path) { cask.staged_path.join("test.bash-completion") }
 | |
|     let(:full_target_path) { cask.config.bash_completion.join("test") }
 | |
| 
 | |
|     before do
 | |
|       InstallHelper.install_without_artifacts(cask)
 | |
|     end
 | |
| 
 | |
|     context "with completion" do
 | |
|       let(:cask_token) { "with-shellcompletion" }
 | |
| 
 | |
|       it "links the completion to the proper directory" do
 | |
|         install_phase.call
 | |
| 
 | |
|         expect(File).to be_identical target_path, source_path
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     context "with long completion" do
 | |
|       let(:cask_token) { "with-shellcompletion-long" }
 | |
| 
 | |
|       it "links the completion to the proper directory" do
 | |
|         install_phase.call
 | |
| 
 | |
|         expect(File).to be_identical full_target_path, full_source_path
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | 
