41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| describe Cask::Artifact::Manpage, :cask do
 | |
|   let(:cask) { Cask::CaskLoader.load(cask_path(cask_token)) }
 | |
| 
 | |
|   context "without section" do
 | |
|     let(:cask_token) { "invalid/invalid-manpage-no-section" }
 | |
| 
 | |
|     it "fails to load a cask without section" do
 | |
|       expect { cask }.to raise_error(Cask::CaskInvalidError, /is not a valid man page name/)
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   context "with install" do
 | |
|     let(:install_phase) {
 | |
|       lambda do
 | |
|         cask.artifacts.select { |a| a.is_a?(described_class) }.each do |artifact|
 | |
|           artifact.install_phase(command: NeverSudoSystemCommand, force: false)
 | |
|         end
 | |
|       end
 | |
|     }
 | |
| 
 | |
|     let(:source_path) { cask.staged_path.join("manpage.1") }
 | |
|     let(:target_path) { cask.config.manpagedir.join("man1/manpage.1") }
 | |
| 
 | |
|     before do
 | |
|       InstallHelper.install_without_artifacts(cask)
 | |
|     end
 | |
| 
 | |
|     context "with autodetected section" do
 | |
|       let(:cask_token) { "with-autodetected-manpage-section" }
 | |
| 
 | |
|       it "links the manpage to the proper directory" do
 | |
|         install_phase.call
 | |
| 
 | |
|         expect(File).to be_identical target_path, source_path
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | 
