Ivan - Fix ticket creation and comment
This commit is contained in:
parent
d6853b3a4b
commit
855c99398d
|
@ -44,8 +44,7 @@ class CreateController extends Controller {
|
|||
$this->language = Controller::request('language');
|
||||
}
|
||||
|
||||
private function storeTicket()
|
||||
{
|
||||
private function storeTicket() {
|
||||
$department = Department::getDataStore($this->departmentId);
|
||||
$author = Controller::getLoggedUser();
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ class DataStoreList {
|
|||
$beanList = [];
|
||||
|
||||
foreach($this->list as $item) {
|
||||
$item->updateBeanProperties();
|
||||
$beanList[] = $item->getBeanInstance();
|
||||
}
|
||||
|
||||
|
|
|
@ -92,6 +92,7 @@ abstract class DataStore {
|
|||
}
|
||||
|
||||
public function store() {
|
||||
$this->updateBeanProperties();
|
||||
|
||||
return RedBean::store($this->getBeanInstance());
|
||||
}
|
||||
|
@ -102,8 +103,6 @@ abstract class DataStore {
|
|||
}
|
||||
|
||||
public function getBeanInstance() {
|
||||
$this->updateBeanProperties();
|
||||
|
||||
return $this->_bean;
|
||||
}
|
||||
|
||||
|
@ -111,7 +110,7 @@ abstract class DataStore {
|
|||
return false;
|
||||
}
|
||||
|
||||
private function updateBeanProperties() {
|
||||
public function updateBeanProperties() {
|
||||
foreach ($this->properties as $key => $prop) {
|
||||
$this->updateBeanProp($key, $prop);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
source "https://rubygems.org"
|
||||
gem 'mysql'
|
||||
gem 'bacon'
|
||||
gem 'mechanize'
|
||||
|
|
|
@ -4,6 +4,7 @@ require 'net/http'
|
|||
require 'uri'
|
||||
require 'mysql'
|
||||
require 'json'
|
||||
require 'mechanize'
|
||||
require './libs.rb'
|
||||
require './scripts.rb'
|
||||
|
||||
|
@ -13,4 +14,5 @@ require './user/signup.rb'
|
|||
require './user/login.rb'
|
||||
require './user/send-recover-password.rb'
|
||||
require './user/recover-password.rb'
|
||||
#require './ticket/create.rb'
|
||||
require './ticket/create.rb'
|
||||
require './ticket/comment.rb'
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
@@agent = Mechanize.new
|
||||
|
||||
def request(path, data = {})
|
||||
uri = URI('http://localhost:8080' + path)
|
||||
response = Net::HTTP.post_form(uri, data)
|
||||
uri = 'http://localhost:8080' + path
|
||||
response = @@agent.post(uri, data)
|
||||
|
||||
return JSON.parse(response.body)
|
||||
end
|
||||
|
|
|
@ -1,14 +1,23 @@
|
|||
describe 'ticket/comment/' do
|
||||
it 'should fail if not logged' do
|
||||
#it 'should fail if not logged' do
|
||||
|
||||
end
|
||||
#end
|
||||
|
||||
describe 'on successful request' do
|
||||
it 'should add comment to current ticket' do
|
||||
describe 'on successful request' do
|
||||
|
||||
it 'should add comment to current ticket' do
|
||||
result = request('/ticket/comment', {
|
||||
content: 'some commment content',
|
||||
ticketId: 1,
|
||||
csrf_userid: $csrf_userid,
|
||||
csrf_token: $csrf_token
|
||||
})
|
||||
|
||||
(result['status']).should.equal('success')
|
||||
end
|
||||
|
||||
# it 'should link the comment to author' do
|
||||
|
||||
# end
|
||||
end
|
||||
it 'should link the comment to author' do
|
||||
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,56 +1,79 @@
|
|||
describe '/ticket/create' do
|
||||
it 'should fail if title is too short' do
|
||||
result = request('/ticket/create', {
|
||||
title: 'GG'
|
||||
})
|
||||
|
||||
(result['status']).should.equal('fail')
|
||||
(result['message']).should.equal('Invalid title')
|
||||
|
||||
end
|
||||
|
||||
it 'should fail if title is very long' do
|
||||
result = request('/ticket/create',{
|
||||
title: 'I WISH I WAS THE MONSTER YOU THINK I AM. -Tyrion'
|
||||
})
|
||||
|
||||
(result['status']).should.equal('fail')
|
||||
(result['message']).should.equal('Invalid title')
|
||||
|
||||
end
|
||||
|
||||
it 'should fail if content is too short' do
|
||||
result = request('/ticket/create',{
|
||||
title: 'Winter is coming',
|
||||
content: 'Test'
|
||||
})
|
||||
|
||||
(result['status']).should.equal('fail')
|
||||
(result['message']).should.equal('Invalid content')
|
||||
end
|
||||
|
||||
it 'should fail if content is very long' do
|
||||
long_text = ''
|
||||
600.times {long_text << 'a'}
|
||||
|
||||
result = request('/ticket/create',{
|
||||
title: 'Winter is coming',
|
||||
content: long_text
|
||||
request('/user/logout')
|
||||
result = request('/user/login', {
|
||||
email: 'steve@jobs.com',
|
||||
password: 'custom'
|
||||
})
|
||||
|
||||
(result['status']).should.equal('fail')
|
||||
(result['message']).should.equal('Invalid content')
|
||||
$csrf_userid = result['data']['userId']
|
||||
$csrf_token = result['data']['token']
|
||||
|
||||
end
|
||||
it 'should fail if title is too short' do
|
||||
result = request('/ticket/create', {
|
||||
title: 'GG',
|
||||
departmentId: 1,
|
||||
csrf_userid: $csrf_userid,
|
||||
csrf_token: $csrf_token
|
||||
})
|
||||
|
||||
it 'should create ticket if pass data is valid' do
|
||||
result = request('/ticket/create',{
|
||||
title: 'Winter is coming',
|
||||
content: 'The north remembers'
|
||||
})
|
||||
(result['status']).should.equal('fail')
|
||||
(result['message']).should.equal('Invalid title')
|
||||
end
|
||||
|
||||
(result['status']).should.equal('success')
|
||||
ticket = $database.getRow('ticket','Winter is coming','title')
|
||||
(ticket['content']).should.equal('The north remembers')
|
||||
end
|
||||
it 'should fail if title is very long' do
|
||||
result = request('/ticket/create',{
|
||||
title: 'I WISH I WAS THE MONSTER YOU THINK I AM. -Tyrion',
|
||||
departmentId: 1,
|
||||
csrf_userid: $csrf_userid,
|
||||
csrf_token: $csrf_token
|
||||
})
|
||||
|
||||
(result['status']).should.equal('fail')
|
||||
(result['message']).should.equal('Invalid title')
|
||||
end
|
||||
|
||||
it 'should fail if content is too short' do
|
||||
result = request('/ticket/create', {
|
||||
title: 'Winter is coming',
|
||||
content: 'Test',
|
||||
departmentId: 1,
|
||||
csrf_userid: $csrf_userid,
|
||||
csrf_token: $csrf_token
|
||||
})
|
||||
|
||||
(result['status']).should.equal('fail')
|
||||
(result['message']).should.equal('Invalid content')
|
||||
end
|
||||
|
||||
it 'should fail if content is very long' do
|
||||
long_text = ''
|
||||
600.times {long_text << 'a'}
|
||||
|
||||
result = request('/ticket/create',{
|
||||
title: 'Winter is coming',
|
||||
content: long_text,
|
||||
departmentId: 1,
|
||||
csrf_userid: $csrf_userid,
|
||||
csrf_token: $csrf_token
|
||||
})
|
||||
|
||||
(result['status']).should.equal('fail')
|
||||
(result['message']).should.equal('Invalid content')
|
||||
|
||||
end
|
||||
|
||||
it 'should create ticket if pass data is valid' do
|
||||
result = request('/ticket/create',{
|
||||
title: 'Winter is coming',
|
||||
content: 'The north remembers',
|
||||
departmentId: 1,
|
||||
csrf_userid: $csrf_userid,
|
||||
csrf_token: $csrf_token
|
||||
})
|
||||
|
||||
puts result['message']
|
||||
(result['status']).should.equal('success')
|
||||
ticket = $database.getRow('ticket','Winter is coming','title')
|
||||
(ticket['content']).should.equal('The north remembers')
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue