FEATURE: Category Reviewable by Group

Allow a group to review content in a particular category.
This commit is contained in:
Robin Ward
2019-04-17 17:12:32 -04:00
parent dd29af4475
commit 404b35bd04
20 changed files with 247 additions and 79 deletions

View File

@ -148,8 +148,11 @@ describe CategoriesController do
describe "success" do
it "works" do
SiteSetting.enable_category_group_review = true
readonly = CategoryGroup.permission_types[:readonly]
create_post = CategoryGroup.permission_types[:create_post]
group = Fabricate(:group)
post "/categories.json", params: {
name: "hello",
@ -158,6 +161,7 @@ describe CategoriesController do
slug: "hello-cat",
auto_close_hours: 72,
search_priority: Searchable::PRIORITIES[:ignore],
reviewable_by_group_name: group.name,
permissions: {
"everyone" => readonly,
"staff" => create_post
@ -165,15 +169,19 @@ describe CategoriesController do
}
expect(response.status).to eq(200)
category = Category.find_by(name: "hello")
cat_json = ::JSON.parse(response.body)['category']
expect(cat_json).to be_present
expect(cat_json['reviewable_by_group_name']).to eq(group.name)
expect(cat_json['name']).to eq('hello')
expect(cat_json['slug']).to eq('hello-cat')
expect(cat_json['color']).to eq('ff0')
expect(cat_json['auto_close_hours']).to eq(72)
expect(cat_json['search_priority']).to eq(Searchable::PRIORITIES[:ignore])
category = Category.find(cat_json['id'])
expect(category.category_groups.map { |g| [g.group_id, g.permission_type] }.sort).to eq([
[Group[:everyone].id, readonly], [Group[:staff].id, create_post]
])
expect(category.name).to eq("hello")
expect(category.slug).to eq("hello-cat")
expect(category.color).to eq("ff0")
expect(category.auto_close_hours).to eq(72)
expect(category.search_priority).to eq(Searchable::PRIORITIES[:ignore])
expect(UserHistory.count).to eq(4) # 1 + 3 (bootstrap mode)
end
end