spec/utopia/content/node_spec.rb in utopia-2.9.5 vs spec/utopia/content/node_spec.rb in utopia-2.10.0
- old
+ new
@@ -18,50 +18,78 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
require 'utopia/content'
-module Utopia::ContentSpec
- describe Utopia::Content::Node do
- let(:root) {File.expand_path("node", __dir__)}
- let(:content) {Utopia::Content.new(lambda{}, root: root)}
+RSpec.describe Utopia::Content::Node do
+ let(:root) {File.expand_path("node", __dir__)}
+ let(:content) {Utopia::Content.new(lambda{}, root: root)}
+
+ it "should list siblings in correct order" do
+ node = content.lookup_node(Utopia::Path['/ordered/first'])
- it "should list siblings in correct order" do
- node = content.lookup_node(Utopia::Path['/ordered/first'])
-
- links = node.sibling_links
-
- expect(links.size).to be == 2
- expect(links[0].name).to be == 'first'
- expect(links[1].name).to be == 'second'
- end
+ links = node.sibling_links
- it "should list all links in correct order" do
+ expect(links.size).to be == 2
+ expect(links[0].name).to be == 'first'
+ expect(links[1].name).to be == 'second'
+ end
+
+ it "should list all links in correct order" do
+ node = content.lookup_node(Utopia::Path['/ordered/index'])
+
+ links = node.links
+
+ expect(links.size).to be == 2
+ expect(links[0].name).to be == 'first'
+ expect(links[1].name).to be == 'second'
+ end
+
+ it "should list related links" do
+ node = content.lookup_node(Utopia::Path['/related/foo.en'])
+
+ links = node.related_links
+
+ expect(links.size).to be == 2
+ expect(links[0].name).to be == 'foo'
+ expect(links[0].locale).to be == 'en'
+
+ expect(links[1].name).to be == 'foo'
+ expect(links[1].locale).to be == 'ja'
+ end
+
+ it "should look up node by path" do
+ node = content.lookup_node(Utopia::Path['/lookup/index'])
+
+ expect(node.process!(nil)).to be == [200, {"Content-Type"=>"text/html; charset=utf-8"}, ["<p>Hello World</p>"]]
+ end
+
+ describe '#local_path' do
+ let(:base) {Pathname.new(root)}
+
+ it "can compute relative path from index node" do
node = content.lookup_node(Utopia::Path['/ordered/index'])
- links = node.links
-
- expect(links.size).to be == 2
- expect(links[0].name).to be == 'first'
- expect(links[1].name).to be == 'second'
+ expect(node.local_path("preview.jpg")).to eq(base + 'ordered/preview.jpg')
end
- it "should list related links" do
- node = content.lookup_node(Utopia::Path['/related/foo.en'])
+ it "can compute relative path from named node" do
+ node = content.lookup_node(Utopia::Path['/ordered/first'])
- links = node.related_links
+ expect(node.local_path("preview.jpg")).to eq(base + 'ordered/preview.jpg')
+ end
+ end
+
+ describe '#relative_path' do
+ it "can compute relative path from index node" do
+ node = content.lookup_node(Utopia::Path['/ordered/index'])
- expect(links.size).to be == 2
- expect(links[0].name).to be == 'foo'
- expect(links[0].locale).to be == 'en'
-
- expect(links[1].name).to be == 'foo'
- expect(links[1].locale).to be == 'ja'
+ expect(node.relative_path("preview.jpg")).to eq(Utopia::Path['/ordered/preview.jpg'])
end
- it "should look up node by path" do
- node = content.lookup_node(Utopia::Path['/lookup/index'])
+ it "can compute relative path from named node" do
+ node = content.lookup_node(Utopia::Path['/ordered/first'])
- expect(node.process!(nil)).to be == [200, {"Content-Type"=>"text/html; charset=utf-8"}, ["<p>Hello World</p>"]]
+ expect(node.relative_path("preview.jpg")).to eq(Utopia::Path['/ordered/preview.jpg'])
end
end
-end
\ No newline at end of file
+end