mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Plugin API to allow creation of directory columns with item query (#13402)
The first thing we needed here was an enum rather than a boolean to determine how a directory_column was created. Now we have `automatic`, `user_field` and `plugin` directory columns. This plugin API is assuming that the plugin has added a migration to a column to the `directory_items` table. This was created to be initially used by discourse-solved. PR with API usage - https://github.com/discourse/discourse-solved/pull/137/
This commit is contained in:
committed by
GitHub
parent
ea2833d0d8
commit
0c42a29dc4
@@ -600,4 +600,28 @@ describe Plugin::Instance do
|
||||
expect(ApiKeyScope.scope_mappings.dig(:groups, :create, :actions)).to contain_exactly(*actions)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#add_directory_column' do
|
||||
let!(:plugin) { Plugin::Instance.new }
|
||||
|
||||
it 'creates a directory column record' do
|
||||
plugin.add_directory_column('random_c', query: "SELECT COUNT(*) FROM users", icon: 'recycle')
|
||||
|
||||
expect(DirectoryColumn.find_by(name: 'random_c', icon: 'recycle', enabled: false).present?).to be(true)
|
||||
end
|
||||
|
||||
it 'errors when the column_name contains invalid characters' do
|
||||
expect {
|
||||
plugin.add_directory_column('Capital', query: "SELECT COUNT(*) FROM users", icon: 'recycle')
|
||||
}.to raise_error(RuntimeError)
|
||||
|
||||
expect {
|
||||
plugin.add_directory_column('has space', query: "SELECT COUNT(*) FROM users", icon: 'recycle')
|
||||
}.to raise_error(RuntimeError)
|
||||
|
||||
expect {
|
||||
plugin.add_directory_column('has_number_1', query: "SELECT COUNT(*) FROM users", icon: 'recycle')
|
||||
}.to raise_error(RuntimeError)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user