require "rails_helper" describe Legislation::DraftVersion do let(:legislation_draft_version) { build(:legislation_draft_version) } it_behaves_like "acts as paranoid", :legislation_draft_version it_behaves_like "globalizable", :legislation_draft_version it "is valid" do expect(legislation_draft_version).to be_valid end it "dynamically validates the valid statuses" do stub_const("#{Legislation::DraftVersion}::VALID_STATUSES", %w[custom]) legislation_draft_version.status = "custom" expect(legislation_draft_version).to be_valid legislation_draft_version.status = "published" expect(legislation_draft_version).not_to be_valid end it "renders the html from the markdown body field" do legislation_draft_version.body = body_markdown legislation_draft_version.save! expect(legislation_draft_version.body_html).to eq(body_html) expect(legislation_draft_version.toc_html).to eq(toc_html) end it "renders the tables from the markdown body field" do legislation_draft_version.body = body_with_table_markdown legislation_draft_version.save! expect(legislation_draft_version.body_html).to eq(body_with_table_html) expect(legislation_draft_version.toc_html).to eq(toc_html) end def body_markdown <<~BODY_MARKDOWN # Title 1 Some paragraph. A list: - item 1 - item 2 ## Subtitle Another paragraph. # Title 2 Something about this. BODY_MARKDOWN end def body_with_table_markdown <<~BODY_MARKDOWN # Title 1 Some paragraph. A list: - item 1 - item 2 ## Subtitle Another paragraph. # Title 2 Something about this. | id | name | age | gender | |----|---------|-----|--------| | 1 | Roberta | 39 | M | | 2 | Oliver | 25 | F | BODY_MARKDOWN end def body_html <<~BODY_HTML

Title 1

Some paragraph.

A list:

Subtitle

Another paragraph.

Title 2

Something about this.

BODY_HTML end def body_with_table_html <<~BODY_HTML

Title 1

Some paragraph.

A list:

Subtitle

Another paragraph.

Title 2

Something about this.

id name age gender
1 Roberta 39 M
2 Oliver 25 F
BODY_HTML end def toc_html <<~TOC_HTML TOC_HTML end end