diff options
author | Robert Speicher <rspeicher@gmail.com> | 2012-09-17 18:44:36 +0400 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2012-09-27 00:32:21 +0400 |
commit | 567767bcf2af2c330c46fde820101fcf847e852f (patch) | |
tree | 1d3e4f73174bab24fc7052d9878e48e53e9434a0 /spec/lib | |
parent | b389247c029b21f5e85abb5896d2cf22230c9cb1 (diff) |
Add ref_extractor helper module for upcoming controllers
Diffstat (limited to 'spec/lib')
-rw-r--r-- | spec/lib/ref_extractor_spec.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/lib/ref_extractor_spec.rb b/spec/lib/ref_extractor_spec.rb new file mode 100644 index 00000000000..84347977bc4 --- /dev/null +++ b/spec/lib/ref_extractor_spec.rb @@ -0,0 +1,39 @@ +require 'spec_helper' + +describe RefExtractor do + include RefExtractor + + let(:project) { double('project') } + + before do + @project = project + project.stub(:branches).and_return(['master', 'foo/bar/baz']) + project.stub(:tags).and_return(['v1.0.0', 'v2.0.0']) + end + + it "extracts a ref without a path" do + extract_ref('master').should == ['master', '/'] + end + + it "extracts a valid branch ref" do + extract_ref('foo/bar/baz/CHANGELOG').should == ['foo/bar/baz', '/CHANGELOG'] + end + + it "extracts a valid tag ref" do + extract_ref('v2.0.0/CHANGELOG').should == ['v2.0.0', '/CHANGELOG'] + end + + it "extracts a valid commit ref" do + extract_ref('f4b14494ef6abf3d144c28e4af0c20143383e062/CHANGELOG').should == + ['f4b14494ef6abf3d144c28e4af0c20143383e062', '/CHANGELOG'] + end + + it "falls back to a primitive split for an invalid ref" do + extract_ref('stable/CHANGELOG').should == ['stable', '/CHANGELOG'] + end + + it "returns an empty pair when no @project is set" do + @project = nil + extract_ref('master/CHANGELOG').should == ['', ''] + end +end |