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
Some paragraph.
A list:
Another paragraph.
Something about this.
BODY_HTML end def body_with_table_html <<~BODY_HTMLSome paragraph.
A list:
Another paragraph.
Something about this.
| id | name | age | gender |
|---|---|---|---|
| 1 | Roberta | 39 | M |
| 2 | Oliver | 25 | F |