Guillermo Giuliana ba457c8d51 add last files
2021-12-09 03:18:20 -03:00

265 lines
9.5 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 fail if articles data already exists' do
result = request('/article/add', {
title: 'Some article',
content: 'this content is unique',
topicId: @topic_id,
position: 1,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
(result['status']).should.equal('fail')
(result['message']).should.equal('TITLE_ALREADY_USED')
result = request('/article/add', {
title: 'unique title',
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('fail')
(result['message']).should.equal('CONTENT_ALREADY_USED')
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 fail if edit article has already used data' do
result = request('/article/add', {
title: 'unique title1.5',
content: 'This is an article about server management1.5.',
topicId: @topic_id,
position: 1,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
(result['status']).should.equal('success')
result = request('/article/add', {
title: 'unique title2',
content: 'This is an article about server management22.',
topicId: @topic_id,
position: 1,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
(result['status']).should.equal('success')
lastArticle = $database.getLastRow('article')
result = request('/article/edit', {
articleId: lastArticle['id'],
content: 'This is an article about server management1.5.',
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
(result['status']).should.equal('fail')
(result['message']).should.equal('CONTENT_ALREADY_USED')
result = request('/article/edit', {
articleId: lastArticle['id'],
title: 'unique title1.5',
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
(result['status']).should.equal('fail')
(result['message']).should.equal('TITLE_ALREADY_USED')
end
it 'should success if change for the same date' do
result = request('/article/add', {
title: 'unique article',
content: 'this content is unique pt2',
topicId: @topic_id,
position: 1,
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
(result['status']).should.equal('success')
lastArticle = $database.getLastRow('article')
result = request('/article/edit', {
articleId: lastArticle['id'],
title: 'unique article',
content: 'this content is unique pt2',
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
(result['status']).should.equal('success')
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
result = request('/article/get-all', {
csrf_userid: $csrf_userid,
csrf_token: $csrf_token
})
(result['status']).should.equal('success')
(result['data'][0]['name']).should.equal('Valid name')
(result['data'][0]['icon']).should.equal('flag')
(result['data'][0]['iconColor']).should.equal('pink')
(result['data'][0]['private']).should.equal('1')
(result['data'][1]['name']).should.equal('Server management')
(result['data'][1]['icon']).should.equal('cogs')
(result['data'][1]['iconColor']).should.equal('red')
(result['data'][1]['private']).should.equal('0')
(result['data'][2]['name']).should.equal('Private Topic')
(result['data'][2]['icon']).should.equal('cogs')
(result['data'][2]['iconColor']).should.equal('green')
(result['data'][2]['private']).should.equal('1')
(result['data'][3]['name']).should.equal('Software installation')
(result['data'][3]['icon']).should.equal('photo')
(result['data'][3]['iconColor']).should.equal('blue')
(result['data'][3]['private']).should.equal('0')
(result['data'][1]['articles'][0]['title']).should.equal('unique title1.5')
(result['data'][1]['articles'][0]['content']).should.equal('This is an article about server management1.5.')
(result['data'][1]['articles'][0]['position']).should.equal('1')
(result['data'][1]['articles'][1]['title']).should.equal('unique title2')
(result['data'][1]['articles'][1]['content']).should.equal('This is an article about server management22.')
(result['data'][1]['articles'][1]['position']).should.equal('1')
(result['data'][1]['articles'][2]['title']).should.equal('unique article')
(result['data'][1]['articles'][2]['content']).should.equal('this content is unique pt2')
(result['data'][1]['articles'][2]['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