Feature: Knowledge Base APIs (#1002)

- Introduce models & migrations for portals, categories, folders and articles
- CRUD API for portals
- CRUD API for categories

Addresses: #714

Co-authored-by: Sojan <sojan@pepalo.com>
This commit is contained in:
Subin T P
2020-09-26 02:32:34 +05:30
committed by GitHub
parent 4b27ac63d4
commit 701eccb35c
34 changed files with 659 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
require 'rails_helper'
RSpec.describe Kbase::Article, type: :model do
context 'with validations' do
it { is_expected.to validate_presence_of(:account_id) }
it { is_expected.to validate_presence_of(:category_id) }
it { is_expected.to validate_presence_of(:author_id) }
it { is_expected.to validate_presence_of(:title) }
it { is_expected.to validate_presence_of(:content) }
end
describe 'associations' do
it { is_expected.to belong_to(:account) }
it { is_expected.to belong_to(:category) }
it { is_expected.to belong_to(:author) }
end
end

View File

@@ -0,0 +1,15 @@
require 'rails_helper'
RSpec.describe Kbase::Category, type: :model do
context 'with validations' do
it { is_expected.to validate_presence_of(:account_id) }
it { is_expected.to validate_presence_of(:name) }
end
describe 'associations' do
it { is_expected.to belong_to(:account) }
it { is_expected.to belong_to(:portal) }
it { is_expected.to have_many(:folders) }
it { is_expected.to have_many(:articles) }
end
end

View File

@@ -0,0 +1,15 @@
require 'rails_helper'
RSpec.describe Kbase::Folder, type: :model do
context 'with validations' do
it { is_expected.to validate_presence_of(:account_id) }
it { is_expected.to validate_presence_of(:category_id) }
it { is_expected.to validate_presence_of(:name) }
end
describe 'associations' do
it { is_expected.to belong_to(:account) }
it { is_expected.to belong_to(:category) }
it { is_expected.to have_many(:articles) }
end
end

View File

@@ -0,0 +1,16 @@
require 'rails_helper'
RSpec.describe Kbase::Portal, type: :model do
context 'with validations' do
it { is_expected.to validate_presence_of(:account_id) }
it { is_expected.to validate_presence_of(:slug) }
it { is_expected.to validate_presence_of(:name) }
end
describe 'associations' do
it { is_expected.to belong_to(:account) }
it { is_expected.to have_many(:categories) }
it { is_expected.to have_many(:folders) }
it { is_expected.to have_many(:articles) }
end
end