39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
require 'spec_helper'
 | 
						|
 | 
						|
describe TreeHelper do
 | 
						|
  describe 'flatten_tree' do
 | 
						|
    let(:project) { create(:project, :repository) }
 | 
						|
    let(:repository) { project.repository }
 | 
						|
    let(:sha) { 'ce369011c189f62c815f5971d096b26759bab0d1' }
 | 
						|
    let(:tree) { repository.tree(sha, 'files') }
 | 
						|
    let(:root_path) { 'files' }
 | 
						|
    let(:tree_item) { tree.entries.find { |entry| entry.path == path } }
 | 
						|
 | 
						|
    subject { flatten_tree(root_path, tree_item) }
 | 
						|
 | 
						|
    context "on a directory containing more than one file/directory" do
 | 
						|
      let(:path) { 'files/html' }
 | 
						|
 | 
						|
      it "returns the directory name" do
 | 
						|
        expect(subject).to match('html')
 | 
						|
      end
 | 
						|
    end
 | 
						|
 | 
						|
    context "on a directory containing only one directory" do
 | 
						|
      let(:path) { 'files/flat' }
 | 
						|
 | 
						|
      it "returns the flattened path" do
 | 
						|
        expect(subject).to match('flat/path/correct')
 | 
						|
      end
 | 
						|
 | 
						|
      context "with a nested root path" do
 | 
						|
        let(:root_path) { 'files/flat' }
 | 
						|
 | 
						|
        it "returns the flattened path with the root path suffix removed" do
 | 
						|
          expect(subject).to match('path/correct')
 | 
						|
        end
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |