# -*- encoding : utf-8 -*- require "rspec-html-matchers" describe Card::Set::All::Base do describe "handles view" do describe "name view" do it("name") { expect(render_card(:name)).to eq("Tempo Rary") } it "pluralizes" do name = render_content "{{Joe User|name; variant: plural}}" expect(name).to eq("Joe Users") end it "singularizes" do name = render_content "{{Sunglasses|name; variant: singular}}" expect(name).to eq("Sunglass") end it "handles more than one variant" do name = render_content( "{{Sunglasses|name; variant: singular, upcase}}" ) expect(name).to eq("SUNGLASS") end end it("key") { expect(render_card(:key)).to eq("tempo_rary") } it("linkname") { expect(render_card(:linkname)).to eq("Tempo_Rary") } it "url" do Card::Env[:protocol] = "http://" Card::Env[:host] = "eric.skippy.com" expect(render_card(:url)).to eq("http://eric.skippy.com/Tempo_Rary") end it :raw do @a = Card.new content: "{{A}}" expect(@a.format._render(:raw)).to eq("{{A}}") end it "core" do expect(render_card(:core, name: "A+B")).to eq("AlphaBeta") end it "core for new card" do expect(Card.new.format._render_core).to eq("") end describe "array" do it "of search items" do Card.create! name: "n+a", type: "Number", content: "10" sleep 1 Card.create! name: "n+b", type: "Phrase", content: 'say:"what"' sleep 1 Card.create! name: "n+c", type: "Number", content: "30" c = Card.new name: "nplusarray", content: "{{n+*children+by create|array}}" expect(c.format._render(:core)).to eq(%(["10", "say:\\"what\\"", "30"])) end it "of pointer items" do Card.create! name: "n+a", type: "Number", content: "10" Card.create! name: "n+b", type: "Number", content: "20" Card.create! name: "n+c", type: "Number", content: "30" Card.create! name: "npoint", type: "Pointer", content: "[[n+a]]\n[[n+b]]\n[[n+c]]" c = Card.new name: "npointArray", content: "{{npoint|array}}" expect(c.format._render(:core)).to eq(%(["10", "20", "30"])) end it "of basic items" do expect(render_card(:array, content: "yoing")).to eq(%(["yoing"])) end end end end