#!/usr/bin/env ruby require File.join(File.dirname(__FILE__), "..", "spec_helper") describe "Macro:" do before do create_web_project Glyph['document.output'] = 'web' Glyph.run! 'load:all' end after do Glyph.lite_mode = false reset_quiet delete_project end it "section (topic)" do expect { output_for("section[@src[test]]") }.to raise_error(Glyph::MacroError, "Macro 'section' requires a 'title' attribute") interpret("section[@src[a/web1.glyph]@title[Test]]") topic = @p.document.topics[0] expect(topic.blank?).to eq(false) expect(topic[:id]).to eq(:t_0) expect(topic[:title]).to eq("Test") expect(topic[:src]).to eq("a/web1.glyph") expect(topic[:contents].match(/id="w1_3"/).blank?).to eq(false) Glyph['document.output'] = 'html' Glyph.run! 'load:macros' expect(output_for("contents[section[@src[a/web1.glyph]@title[Test]]]").match(/id="w1_3"/).blank?).to eq(false) end it "navigation" do Glyph.run! 'generate:web' web1 = compact_html Glyph.file_load(Glyph::PROJECT/'output/web/a/web1.html') web2 = compact_html Glyph.file_load(Glyph::PROJECT/'output/web/a/b/web2.html') expect(web1.match(%{
}).blank?).to eq(false) expect(web2.match(%{ }).blank?).to eq(false) end it "toc should only list topics" do Glyph.run! 'generate:web' index = Glyph.file_load(Glyph::PROJECT/'output/web/index.html') expect(index.match(%{