diff --git a/backend/app.js b/backend/app.js
index a8c3e73f13134ecbb2e82470357da83d89bc7857..29c1f706686b27dd6affcfe141e5385b539775f0 100644
--- a/backend/app.js
+++ b/backend/app.js
@@ -11,7 +11,9 @@ const corsOptions = {
 }
 
 const app = express()
-app.use(morgan('combined'))
+if (process.env.NODE_ENV != 'test') {
+    app.use(morgan('combined'))
+}
 app.use(bodyParser.json())
 app.use(cors(corsOptions));
 app.use(cookieParser());
diff --git a/backend/controller/userController.js b/backend/controller/userController.js
index 8540e766f2ffc16f329bf7f137edd2c4d0972ad9..c3490c95f051a255dd6de81e7d78d60b09a50cc7 100644
--- a/backend/controller/userController.js
+++ b/backend/controller/userController.js
@@ -143,9 +143,9 @@ exports.deleteUser = (req, res) => {
 exports.viewDetail = (req, res) => {
 	User.findOne({
 		where: {
-			id: req.body.id
+			id: req.params.id
 		},
-		attributes: ['id', 'name', 'email', 'username', 'password'],
+		attributes: ['id', 'name', 'email', 'username'],
 		include: [{
 			model: Role, 
 			attributes: ['id', 'name']
diff --git a/backend/router/router.js b/backend/router/router.js
index 9d2a501561b227b9423b1d1904c355474ecb58d5..bc8ca7333118fbc22541aa324a56d647090566ec 100644
--- a/backend/router/router.js
+++ b/backend/router/router.js
@@ -18,6 +18,12 @@ module.exports = function(app) {
 
     app.post('/api/auth/login', authController.signin);
 
+    app.get('/api/user/all', [verifyJwtToken.verifyToken, verifyJwtToken.isAdmin], userController.fetchAll);
+    app.get('/api/user/:id', [verifyJwtToken.verifyToken, verifyJwtToken.isAdmin], userController.viewDetail);
+    app.post('/api/user/create', [verifyJwtToken.verifyToken, verifyJwtToken.isAdmin], userController.createUser);
+    app.post('/api/user/edit', [verifyJwtToken.verifyToken, verifyJwtToken.isAdmin], userController.editUser);
+    app.post('/api/user/delete', [verifyJwtToken.verifyToken, verifyJwtToken.isAdmin], userController.deleteUser);
+    
     app.post('/api/organisasi/internal/all', [verifyJwtToken.verifyToken, verifyJwtToken.isMasterAdminDiskominfo], organisasiInternalController.fetchAll);
     app.post('/api/organisasi/internal/create', [verifyJwtToken.verifyToken, verifyJwtToken.isMasterAdminDiskominfo], organisasiInternalController.createOrganisasiInternal);
     app.post('/api/organisasi/internal/edit', [verifyJwtToken.verifyToken, verifyJwtToken.isMasterAdminDiskominfo], organisasiInternalController.editOrganisasiInternal);
@@ -28,12 +34,6 @@ module.exports = function(app) {
     app.post('/api/organisasi/eksternal/edit', [verifyJwtToken.verifyToken, verifyJwtToken.isAdminDiskominfo], organisasiEksternalController.editOrganisasiEksternal);
     app.post('/api/organisasi/eksternal/delete', [verifyJwtToken.verifyToken, verifyJwtToken.isAdminDiskominfo], organisasiEksternalController.deleteOrganisasiEksternal);
 
-    app.post('/api/user/all', [verifyJwtToken.verifyToken, verifyJwtToken.isAdmin], userController.fetchAll);
-    app.post('/api/user/create', [verifyJwtToken.verifyToken, verifyJwtToken.isAdmin], userController.createUser);
-    app.post('/api/user/edit', [verifyJwtToken.verifyToken, verifyJwtToken.isAdmin], userController.editUser);
-    app.post('/api/user/delete', [verifyJwtToken.verifyToken, verifyJwtToken.isAdmin], userController.deleteUser);
-    app.post('/api/user/detail', [verifyJwtToken.verifyToken, verifyJwtToken.isAdmin], userController.viewDetail);
-
     app.get('/api/role/all', [verifyJwtToken.verifyToken, checkPermission.isRoleAll], roleController.fetchAll);
     app.post('/api/role/create', [verifyJwtToken.verifyToken, checkPermission.isRoleAll, verifyRole.roleIsExist], roleController.createRole);
     app.post('/api/role/edit', [verifyJwtToken.verifyToken, checkPermission.isRoleAll, verifyRole.roleIsExist], roleController.editRole);
diff --git a/backend/seeders/20190503165519-roles.js b/backend/seeders/20190503165519-roles.js
new file mode 100644
index 0000000000000000000000000000000000000000..7e32aef418d7d21b12ccc61d9c4f59081748542b
--- /dev/null
+++ b/backend/seeders/20190503165519-roles.js
@@ -0,0 +1,27 @@
+'use strict';
+
+module.exports = {
+  up: (queryInterface, Sequelize) => {
+    return queryInterface.bulkInsert('roles', [{
+      name: 'Master Admin Diskominfo',
+      createdAt: new Date(),
+      updatedAt: new Date()
+    }, {
+      name: 'Admin Diskominfo',
+      createdAt: new Date(),
+      updatedAt: new Date()
+    }, {
+      name: 'Admin Dinas',
+      createdAt: new Date(),
+      updatedAt: new Date()
+    }, {
+      name: 'Member Dinas',
+      createdAt: new Date(),
+      updatedAt: new Date()
+    }]);
+  },
+
+  down: (queryInterface, Sequelize) => {
+    return queryInterface.bulkDelete('roles', null, {});
+  }
+};
diff --git a/backend/seeders/20190512034615-test-user.js b/backend/seeders/20190512034615-test-user.js
index b8d4452943a73dd3b349e4bf2762a4fa678133bc..2ab1817bb4c5831a8e858017522109c73764e01c 100644
--- a/backend/seeders/20190512034615-test-user.js
+++ b/backend/seeders/20190512034615-test-user.js
@@ -11,6 +11,7 @@ module.exports = {
     const rolesRow = roles[0];
 
     return await queryInterface.bulkInsert('users', [{
+      id: 1,
       name: 'Kadek Yuda',
       username: 'yuda_98',
       email: 'yudaikadek22@gmail.com',
@@ -19,6 +20,16 @@ module.exports = {
       createdAt: new Date(),
       updatedAt: new Date()
     }, {
+      id: 2,
+      name: 'Komi Shouko',
+      username: 'komisama',
+      email: 'komi.shouko@gmail.com',
+      password: bycrypt.hashSync('komisama'),
+      roleId: rolesRow[1].id,
+      createdAt: new Date(),
+      updatedAt: new Date()
+    },{
+      id: 3,
       name: 'Kucing Laut',
       username: 'kucinglaut',
       email: 'kucinglaut1522@gmail.com',
diff --git a/backend/test/authTest.js b/backend/test/authTest.js
index b0214821577d5588c9d30935e92df9b04065e621..f49dd2ecb585c6864dae07ba48c7f8a33d2e64d5 100644
--- a/backend/test/authTest.js
+++ b/backend/test/authTest.js
@@ -5,46 +5,7 @@ chai.use(chaiHttp);
 const expect = chai.expect;
 const app = require('../app');
 
-const models = require('../models');
-const User = models.user;
-const Role = models.role;
-const bycrypt = require('bcryptjs');
-
 describe("Auth API", () => {
-    before((done) => {
-        User.create({
-            id: 1,
-            name: 'Komi Shouko',
-            username: 'komisama',
-            email: 'komi.shouko@gmail.com',
-            password: bycrypt.hashSync('komisama')
-        }).then((user) => {
-            Role.create({
-                id: 5,
-                name: "Admin"
-            }).then((role) => {
-                user.setRole(role).then(() => {
-                    done();
-                })
-            })
-        })
-    });
-    after((done) => {
-        Role.destroy({
-            where: {
-                id: 5
-            }
-        }).then(() => {
-            User.destroy({
-                where: {
-                    id: 1
-                }
-            }).then(() => {
-                done();
-            })
-        })
-    });
-
     describe('#Login', () => {
         it('Should login with correct credentials', (done) => {
             var loginCredentials = {username: 'komisama', password: 'komisama'};
diff --git a/backend/test/userTest.js b/backend/test/userTest.js
index cc8628390cf4a5045e83a913ff4a87806082720c..07ee3c2e5dda9215545f4fb9997936ad3138d48b 100644
--- a/backend/test/userTest.js
+++ b/backend/test/userTest.js
@@ -1,7 +1,7 @@
 const chai = require('chai');
 const chaiHttp = require('chai-http');
 chai.use(chaiHttp);
-const should = chai.should();
+
 const expect = chai.expect;
 const app = require('../app');
 
@@ -9,6 +9,23 @@ const models = require('../models');
 const User = models.user;
 
 var tokenCookies;
+var newUserId = 0;
+
+var newUser = {
+    name: 'Osana Najimi',
+    email: 'osana.najimi@gmail.com',
+    username: 'osananajimi',
+    password: 'hai',
+    role: 'Member Dinas'
+}
+
+var editUser = {
+    name: 'Osana Najimi',
+    email: 'najimi.osana@gmail.com',
+    username: 'osananajimi',
+    password: 'hai',
+    role: 'Member Dinas'
+}
 
 describe('User API', () => {
     beforeEach((done) => {
@@ -27,24 +44,91 @@ describe('User API', () => {
     describe('# Fetch All', () => {
         it('Should fetch all users', function(done){
             chai.request(app)
-            .post('/api/user/all')
+            .get('/api/user/all')
             .set('Cookie', tokenCookies)
             .end(function(err, res) {
-                console.log(res.body.data.users[0]);
+                expect(res).status(200);
+                expect(res.body.data.users).be.a('array');
                 done();
             });
         });
     });
     describe('# Create User', () => {
+        it('Should create a user with different credentials', function(done) {
+            chai.request(app)
+            .post('/api/user/create')
+            .set('Cookie', tokenCookies)
+            .send(newUser)
+            .end(function(err, res) {
+                expect(res).status(200);
+                User.findOne({
+                    where: {
+                        name: newUser.name
+                    }
+                }).then(user => {
+                    expect(user).is.not.undefined;
+                    newUserId = user.id;
+                    done();
+                });
+            })
+        });
         
     });
     describe('# Edit User', () => {
+        it('Should edit existing user', function(done) {
+            expect(newUserId).not.equals(0);
+            editUser.id = newUserId;
+            chai.request(app)
+            .post('/api/user/edit')
+            .set('Cookie', tokenCookies)
+            .send(editUser)
+            .end(function(err,res) {
+               User.findOne({
+                   where: {
+                       id: newUserId
+                   }
+               }).then((user) => {
+                   expect(user.email).equals('najimi.osana@gmail.com');
+                   done();
+               })
+            });
+        })
         
     });
     describe('# Delete User', () => {
-        
+        it('Should delete existing user', function(done) {
+            expect(newUserId).not.equals(0);
+            var userId = {id: newUserId};
+            chai.request(app)
+            .post('/api/user/delete')
+            .set('Cookie', tokenCookies)
+            .send(userId)
+            .end(function(err, res) {
+                User.findOne({
+                    where: {
+                        id: newUserId
+                    }
+                }).then((user) => {
+                    expect(user).is.null;
+                    done();
+                })
+            })
+
+        })
     });
     describe('# User Detail', () => {
-        
+        it('Should show details of existing user', function(done) {
+            chai.request(app)
+            .get('/api/user/1')
+            .set('Cookie', tokenCookies)
+            .end(function(err, res) {
+                var dataResponse = res.body.data.users;
+                expect(dataResponse.id).equals(1);
+                expect(dataResponse.name).equals('Kadek Yuda');
+                expect(dataResponse.email).equals('yudaikadek22@gmail.com');
+                expect(dataResponse.username).equals('yuda_98');
+                done();
+            })
+        })
     });
 })
\ No newline at end of file