diff --git a/tests/init.rb b/tests/init.rb index 0614319e..45791f55 100644 --- a/tests/init.rb +++ b/tests/init.rb @@ -35,5 +35,9 @@ require './staff/get-all-tickets.rb' require './ticket/events.rb' require './article/topic.rb' require './article/article.rb' +require './user/get-user.rb' +require './user/ban.rb' +require './user/get-users-test.rb' +require './user/delete.rb' diff --git a/tests/user/ban.rb b/tests/user/ban.rb new file mode 100644 index 00000000..86d03e2d --- /dev/null +++ b/tests/user/ban.rb @@ -0,0 +1,75 @@ +describe '/user/ban' do + + request('/user/logout') + result = request('/user/login', { + email: 'staff@opensupports.com', + password: 'staff', + staff: true + }) + + $csrf_userid = result['data']['userId'] + $csrf_token = result['data']['token'] + + it 'should ban user' do + result = request('/user/ban', { + email: 'nothing@hotmail.com', + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['status']).should.equal('success') + + user = $database.getRow('ban', 1 , 'id') + (user['email']).should.equal('nothing@hotmail.com') + + end + + it 'should get ban list' do + result = request('/user/list-ban', { + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['data'][0]).should.equal('nothing@hotmail.com') + + end + + it 'should not ban user if it is already banned' do + result = request('/user/ban', { + email: 'nothing@hotmail.com', + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['status']).should.equal('fail') + (result['message']).should.equal('ALREADY_BANNED') + + end + + it 'should un-ban user if it is already banned' do + result = request('/user/un-ban', { + email: 'nothing@hotmail.com', + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['status']).should.equal('success') + + user = $database.getRow('ban', 1 , 'id') + (user).should.equal(nil) + + end + + it 'should not un-ban user if it is not banned' do + result = request('/user/un-ban', { + email: 'nothing@hotmail.com', + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['status']).should.equal('fail') + (result['message']).should.equal('INVALID_EMAIL') + + end + +end \ No newline at end of file diff --git a/tests/user/delete.rb b/tests/user/delete.rb new file mode 100644 index 00000000..8b411d14 --- /dev/null +++ b/tests/user/delete.rb @@ -0,0 +1,28 @@ +describe '/user/delete' do + + request('/user/logout') + result = request('/user/login', { + email: 'staff@opensupports.com', + password: 'staff', + staff: true + }) + + $csrf_userid = result['data']['userId'] + $csrf_token = result['data']['token'] + + it 'should delete user' do + result = request('/user/delete', { + userId: 4, + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['status']).should.equal('success') + + user = $database.getRow('user', 4 , 'id') + (user).should.equal(nil) + + end +end + + diff --git a/tests/user/get-user.rb b/tests/user/get-user.rb new file mode 100644 index 00000000..ca9bf37c --- /dev/null +++ b/tests/user/get-user.rb @@ -0,0 +1,29 @@ +describe '/user/get-user' do + + request('/user/logout') + result = request('/user/login', { + email: 'staff@opensupports.com', + password: 'staff', + staff: true + }) + + $csrf_userid = result['data']['userId'] + $csrf_token = result['data']['token'] + + it 'should get user data' do + result = request('/user/get-user', { + userId: 4, + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['status']).should.equal('success') + + user = $database.getRow('user', 4 , 'id') + (user['email']).should.equal(result['data']['email']) + (user['signup_date']).should.equal(result['data']['signupDate']) + (user['name']).should.equal(result['data']['name']) + (user['tickets']).should.equal(result['data']['tickets'].size.to_s) + end + +end \ No newline at end of file diff --git a/tests/user/get-users-test.rb b/tests/user/get-users-test.rb new file mode 100644 index 00000000..8ccec70e --- /dev/null +++ b/tests/user/get-users-test.rb @@ -0,0 +1,89 @@ +describe '/user/get-users' do + + request('/user/logout') + Scripts.createUser('tests@hotmail.com','passdasdasdas','laasdasd') + Scripts.createUser('tests2@hotmail.com','passfasfasfsa','laeaefae') + Scripts.createUser('tests3@hotmail.com','passfasfasfws','laeczvwaf') + result = request('/user/login', { + email: 'staff@opensupports.com', + password: 'staff', + staff: true + }) + + $csrf_userid = result['data']['userId'] + $csrf_token = result['data']['token'] + + it 'should get users on first page' do + result = request('/user/get-users', { + page: 1, + orderBy:'id', + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['status']).should.equal('success') + (result['data']['users'].size).should.equal(10) + (result['data']['pages']).should.equal(2) + end + + it 'should get users on second page' do + result = request('/user/get-users', { + page:2, + orderBy:'id', + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['status']).should.equal('success') + (result['data']['users'].size).should.equal(3) + end + + it 'should get users with order by tickets and asc' do + result = request('/user/get-users', { + page:1, + orderBy:'tickets', + desc:false, + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['status']).should.equal('success') + users = result['data']['users'] + (1..(users.size-1)).each do |i| + (users[i]['tickets'].to_i >= users[i-1]['tickets'].to_i).should.equal(true) + end + end + + it 'should get users with order by tickets and desc' do + result = request('/user/get-users', { + page:1, + orderBy:'tickets', + desc:true, + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['status']).should.equal('success') + users = result['data']['users'] + (1..(users.size-1)).each do |i| + (users[i]['tickets'].to_i <= users[i-1]['tickets'].to_i).should.equal(true) + end + end + + it 'should get users with search' do + result = request('/user/get-users', { + page:1, + search:'la', + orderBy:'id', + csrf_userid: $csrf_userid, + csrf_token: $csrf_token + }) + + (result['status']).should.equal('success') + (result['data']['users'][0]['name']).should.equal('laasdasd') + (result['data']['users'][1]['name']).should.equal('laeaefae') + (result['data']['users'][2]['name']).should.equal('laeczvwaf') + (result['data']['users'][3]['name']).should.equal('Cersei Lannister') + (result['data']['users'][4]['name']).should.equal('Tyrion Lannister') + end +end \ No newline at end of file diff --git a/tests/user/get.rb b/tests/user/get.rb index e683ecbb..ef89384e 100644 --- a/tests/user/get.rb +++ b/tests/user/get.rb @@ -2,9 +2,7 @@ describe '/user/get' do request('/user/logout') Scripts.createUser('user_get@os4.com', 'user_get','User Get') - result = Scripts.login('user_get@os4.com', 'user_get') - $csrf_userid = result['userId'] - $csrf_token = result['token'] + Scripts.login('user_get@os4.com', 'user_get') result = request('/ticket/create', { title: 'Should we pay?', content: 'A Lannister always pays his debts.',