Sha256: daace019f91719019b02da4057b5ec52ee2567690bf25d3d5d80d6b801eb92dd
Contents?: true
Size: 1.99 KB
Versions: 2
Compression:
Stored size: 1.99 KB
Contents
require 'rails_helper' module Strain RSpec.describe Article, type: :model do it "has a valid factory" do expect(build(:article)).to be_valid end it "is invalid without a slug" do expect(build(:article, slug: nil)).to be_invalid end it "is invalid with a non-URL-safe slug" do expect(build(:article, slug: "invalid slug")).to be_invalid end it "is invalid without a variant" do expect(build(:article, variant: nil)).to be_invalid end it "is invalid without a body" do expect(build(:article, body: nil)).to be_invalid end it "is invalid without a title" do expect(build(:article, title: nil)).to be_invalid end it "raises a database error with a nonunique slug" do a = create(:article) b = build(:article, slug: a.slug, variant: a.variant) expect {b.save(validate: false)}.to raise_error(ActiveRecord::RecordNotUnique) end it "is invalid with a nonunique slug" do a = create(:article) b = build(:article, slug: a.slug, variant: a.variant) expect(b).to be_invalid end it "is valid when compliant with its Variant" do v = create(:variant) a = build(:article, variant: v, body: {"summary": "test", "main": "test"}) expect(a).to be_valid end it "is invalid when not compliant with its Variant" do v = create(:variant) a = build(:article, variant: v, body: {"extra_property": "test", "main": "test"}) expect(a).to be_invalid end it "fills in schema-defined defaults" do v = build(:variant, schema: { "type": "object", "properties": { "title": { "type": "string", "default": "default Title" } } }) a = create(:article, variant: v, body:{}) expect(a.body["title"]).to eq("default Title") end it "provides detailed errors when invalid according to JSON schema" it "enforces key format? - hyphenated, underscores, camelcase?" end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
strain-0.0.2 | spec/models/strain/article_spec.rb |
strain-0.0.1 | spec/models/strain/article_spec.rb |