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