162 lines
5.9 KiB
Ruby
162 lines
5.9 KiB
Ruby
describe 'Article path' do
|
|
Scripts.logout()
|
|
Scripts.login($staff[:email], $staff[:password], true)
|
|
topic = request('/article/add-topic', {
|
|
name: 'Server management',
|
|
icon: 'cogs',
|
|
iconColor: 'red',
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
private: 0
|
|
})
|
|
@topic_id = topic['data']['topicId']
|
|
|
|
it 'should create a private topic' do
|
|
result = request('/article/add-topic', {
|
|
name: 'Private Topic',
|
|
icon: 'cogs',
|
|
iconColor: 'green',
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token,
|
|
private: 1
|
|
})
|
|
row = $database.getRow('topic', 'Private Topic', 'name')
|
|
|
|
result['status'].should.equal('success')
|
|
(row['private']).should.equal(1)
|
|
end
|
|
|
|
it 'should create article' do
|
|
result = request('/article/add', {
|
|
title: 'Some article',
|
|
content: 'This is an article about server management.',
|
|
topicId: @topic_id,
|
|
position: 1,
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token
|
|
})
|
|
(result['status']).should.equal('success')
|
|
|
|
@article_id = result['data']['articleId']
|
|
article = $database.getRow('article', @article_id)
|
|
(article['title']).should.equal('Some article')
|
|
(article['content']).should.equal('This is an article about server management.')
|
|
(article['topic_id']).should.equal(@topic_id)
|
|
(article['position']).should.equal(1)
|
|
|
|
lastLog = $database.getLastRow('log')
|
|
(lastLog['type']).should.equal('ADD_ARTICLE')
|
|
end
|
|
|
|
it 'should edit article' do
|
|
result = request('/article/edit', {
|
|
articleId: @article_id,
|
|
content: 'This is an article about server management2.',
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token
|
|
})
|
|
(result['status']).should.equal('success')
|
|
|
|
article = $database.getRow('article', @article_id)
|
|
(article['title']).should.equal('Some article')
|
|
(article['content']).should.equal('This is an article about server management2.')
|
|
(article['topic_id']).should.equal(@topic_id)
|
|
(article['position']).should.equal(1)
|
|
|
|
lastLog = $database.getLastRow('log')
|
|
(lastLog['type']).should.equal('EDIT_ARTICLE')
|
|
end
|
|
|
|
it 'should edit article topic' do
|
|
request('/article/add-topic', {
|
|
name: 'Software installation',
|
|
icon: 'photo',
|
|
iconColor: 'blue',
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token
|
|
})
|
|
|
|
result = request('/article/edit', {
|
|
articleId: @article_id,
|
|
topicId: @topic_id+1,
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token
|
|
})
|
|
(result['status']).should.equal('success')
|
|
|
|
article = $database.getRow('article', @article_id)
|
|
(article['title']).should.equal('Some article')
|
|
(article['content']).should.equal('This is an article about server management2.')
|
|
(article['topic_id']).should.equal((@topic_id+1))
|
|
(article['position']).should.equal(1)
|
|
end
|
|
|
|
it 'should delete article' do
|
|
result = request('/article/delete', {
|
|
articleId: @article_id,
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token
|
|
})
|
|
(result['status']).should.equal('success')
|
|
|
|
article = $database.getRow('article', @article_id)
|
|
(article).should.equal(nil)
|
|
|
|
lastLog = $database.getLastRow('log')
|
|
(lastLog['type']).should.equal('DELETE_ARTICLE')
|
|
end
|
|
|
|
it 'should retrieve all articles' do
|
|
request('/article/add', {
|
|
title: 'Some article',
|
|
content: 'This is an article about server management.',
|
|
topicId: @topic_id,
|
|
position: 1,
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token
|
|
})
|
|
result = request('/article/get-all', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token
|
|
})
|
|
(result['status']).should.equal('success')
|
|
|
|
(result['data'][0]['name']).should.equal('Server management')
|
|
(result['data'][0]['icon']).should.equal('cogs')
|
|
(result['data'][0]['iconColor']).should.equal('red')
|
|
(result['data'][0]['private']).should.equal('0')
|
|
(result['data'][1]['name']).should.equal('Private Topic')
|
|
(result['data'][1]['icon']).should.equal('cogs')
|
|
(result['data'][1]['iconColor']).should.equal('green')
|
|
(result['data'][1]['private']).should.equal('1')
|
|
(result['data'][2]['name']).should.equal('Software installation')
|
|
(result['data'][2]['icon']).should.equal('photo')
|
|
(result['data'][2]['iconColor']).should.equal('blue')
|
|
(result['data'][2]['private']).should.equal('0')
|
|
|
|
(result['data'][0]['articles'][0]['title']).should.equal('Some article')
|
|
(result['data'][0]['articles'][0]['content']).should.equal('This is an article about server management.')
|
|
(result['data'][0]['articles'][0]['position']).should.equal('1')
|
|
|
|
end
|
|
it 'should retrieve public departments' do
|
|
Scripts.logout()
|
|
Scripts.login('tyrion@opensupports.com', 'tyrionl')
|
|
|
|
result = request('/article/get-all', {
|
|
csrf_userid: $csrf_userid,
|
|
csrf_token: $csrf_token
|
|
})
|
|
(result['status']).should.equal('success')
|
|
|
|
(result['data'][0]['name']).should.equal('Server management')
|
|
(result['data'][0]['icon']).should.equal('cogs')
|
|
(result['data'][0]['iconColor']).should.equal('red')
|
|
(result['data'][0]['private']).should.equal('0')
|
|
(result['data'][1]['name']).should.equal('Software installation')
|
|
(result['data'][1]['icon']).should.equal('photo')
|
|
(result['data'][1]['iconColor']).should.equal('blue')
|
|
(result['data'][1]['private']).should.equal('0')
|
|
end
|
|
end
|