require "spec_helper"
require "fileutils"
RSpec.describe Asciidoctor::Standoc do
it "has a version number" do
expect(Metanorma::Standoc::VERSION).not_to be nil
end
it "processes a blank document" do
expect(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)).to be_equivalent_to <<~"OUTPUT"
#{ASCIIDOC_BLANK_HDR}
INPUT
#{BLANK_HDR}
OUTPUT
end
it "converts a blank document" do
FileUtils.rm_f "test.doc"
expect(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)).to be_equivalent_to <<~"OUTPUT"
= Document title
Author
:docfile: test.adoc
:novalid:
INPUT
#{BLANK_HDR}
OUTPUT
expect(File.exist?("test.doc")).to be true
expect(File.exist?("htmlstyle.css")).to be false
end
it "processes default metadata" do
expect(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)).to be_equivalent_to <<~'OUTPUT'
= Document title
Author
:docfile: test.adoc
:nodoc:
:novalid:
:docnumber: 1000
:partnumber: 1
:edition: 2
:revdate: 2000-01-01
:published-date: 1000-01-01
:accessed-date: 1001-01-01
:created-date: 1002-01-01
:implemented-date: 1003-01-01
:obsoleted-date: 1004-01-01
:confirmed-date: 1005-01-01
:updated-date: 1006-01-01
:issued-date: 1007-01-01
:circulated-date: 1008-01-01
:unchanged-date: 1009-01-01
:date: Fred 1010-01-01
:date_2: Jack 1010-01-01
:draft: 3.4
:technical-committee: TC
:technical-committee-number: 1
:technical-committee-type: A
:subcommittee: SC
:subcommittee-number: 2
:subcommittee-type: B
:workgroup: WG
:workgroup-number: 3
:workgroup-type: C
:technical-committee_2: TC1
:technical-committee-number_2: 11
:technical-committee-type_2: A1
:subcommittee_2: SC1
:subcommittee-number_2: 21
:subcommittee-type_2: B1
:workgroup_2: WG1
:workgroup-number_2: 31
:workgroup-type_2: C1
:secretariat: SECRETARIAT
:copyright-year: 2001
:docstage: 10
:docsubstage: 20
:iteration: 3
:language: en
:title: Main Title -- Title
:library-ics: 1,2,3
INPUT
Main Title — Title1000-110001000-01-011001-01-011002-01-011003-01-011004-01-011005-01-011006-01-011007-01-011008-01-011009-01-011010-01-011010-01-0122000-01-013.4enpublished2001TCTC1123
OUTPUT
end
it "processes complex metadata" do
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)).sub(%r{.*$}m, "")).to be_equivalent_to <<~'OUTPUT'
= Document title
Author
:docfile: test.adoc
:nodoc:
:novalid:
:docnumber: 1000
:partnumber: 1-1
:tc-docnumber: 2000
:language: el
:script: Grek
:publisher: IEC,IETF,ISO
:uri: A
:xml-uri: B
:html-uri: C
:pdf-uri: D
:doc-uri: E
:relaton-uri: F
:title-eo: Dokumenttitolo
[abstract]
== Abstract
This is the abstract of the document
This is the second paragraph of the abstract of the document.
INPUT
Document titleDokumenttitolo1000-1-11000IECIETFISOIECIETFISOel
This is the abstract of the document
This is the second paragraph of the abstract of the document.
published2018IEC2018IETF2018ISO
OUTPUT
end
it "reads scripts into blank HTML document" do
FileUtils.rm_f "test.html"
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
= Document title
Author
:docfile: test.adoc
:novalid:
:scripts: spec/assets/scripts.html
INPUT
html = File.read("test.html", encoding: "utf-8")
expect(html).to match(%r{