Add model WikiDirectory
This commit is contained in:
parent
8d8c5d9f61
commit
b361a67fb0
|
@ -0,0 +1,13 @@
|
||||||
|
class WikiDirectory
|
||||||
|
include ActiveModel::Validations
|
||||||
|
|
||||||
|
attr_accessor :slug, :pages, :directories
|
||||||
|
|
||||||
|
validates :slug, presence: true
|
||||||
|
|
||||||
|
def initialize(slug, pages = [], directories = [])
|
||||||
|
@slug = slug
|
||||||
|
@pages = pages
|
||||||
|
@directories = directories
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,6 @@
|
||||||
|
FactoryGirl.define do
|
||||||
|
factory :wiki_directory do
|
||||||
|
slug '/path_up_to/dir'
|
||||||
|
initialize_with { new(slug) }
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,45 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
RSpec.describe WikiDirectory, models: true do
|
||||||
|
describe 'validations' do
|
||||||
|
subject { build(:wiki_directory) }
|
||||||
|
|
||||||
|
it { is_expected.to validate_presence_of(:slug) }
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#initialize' do
|
||||||
|
context 'when there are pages and directories' do
|
||||||
|
let(:pages) { [build(:wiki_page)] }
|
||||||
|
let(:other_directories) { [build(:wiki_directory)] }
|
||||||
|
let(:directory) { WikiDirectory.new('/path_up_to/dir', pages, other_directories) }
|
||||||
|
|
||||||
|
it 'sets the slug attribute' do
|
||||||
|
expect(directory.slug).to eq('/path_up_to/dir')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'sets the pages attribute' do
|
||||||
|
expect(directory.pages).to eq(pages)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'sets the directories attribute' do
|
||||||
|
expect(directory.directories).to eq(other_directories)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when there are no pages or directories' do
|
||||||
|
let(:directory) { WikiDirectory.new('/path_up_to/dir') }
|
||||||
|
|
||||||
|
it 'sets the slug attribute' do
|
||||||
|
expect(directory.slug).to eq('/path_up_to/dir')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'sets the pages attribute to an empty array' do
|
||||||
|
expect(directory.pages).to eq([])
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'sets the directories attribute to an empty array' do
|
||||||
|
expect(directory.directories).to eq([])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue