diff --git a/test/server/handlers/article.spec.coffee b/test/server/functional/article.spec.coffee
similarity index 100%
rename from test/server/handlers/article.spec.coffee
rename to test/server/functional/article.spec.coffee
diff --git a/test/server/auth.spec.coffee b/test/server/functional/auth.spec.coffee
similarity index 99%
rename from test/server/auth.spec.coffee
rename to test/server/functional/auth.spec.coffee
index c92a83d8c..45f070972 100644
--- a/test/server/auth.spec.coffee
+++ b/test/server/functional/auth.spec.coffee
@@ -1,4 +1,4 @@
-require './common'
+require '../common'
 request = require 'request'
 
 urlLogin = getURL('/auth/login')
diff --git a/test/server/handlers/campaign.spec.coffee b/test/server/functional/campaign.spec.coffee
similarity index 100%
rename from test/server/handlers/campaign.spec.coffee
rename to test/server/functional/campaign.spec.coffee
diff --git a/test/server/handlers/campaign_status.spec.coffee b/test/server/functional/campaign_status.spec.coffee
similarity index 100%
rename from test/server/handlers/campaign_status.spec.coffee
rename to test/server/functional/campaign_status.spec.coffee
diff --git a/test/server/handlers/db-id-version.spec.coffee b/test/server/functional/db-id-version.spec.coffee
similarity index 100%
rename from test/server/handlers/db-id-version.spec.coffee
rename to test/server/functional/db-id-version.spec.coffee
diff --git a/test/server/file.spec.coffee b/test/server/functional/file.spec.coffee
similarity index 98%
rename from test/server/file.spec.coffee
rename to test/server/functional/file.spec.coffee
index 430cb401d..cbabfb14e 100644
--- a/test/server/file.spec.coffee
+++ b/test/server/functional/file.spec.coffee
@@ -1,4 +1,4 @@
-require './common'
+require '../common'
 
 describe '/file', ->
   url = getURL('/file')
@@ -33,7 +33,8 @@ describe '/file', ->
       expect(body.metadata).toBeUndefined()
       done()
 
-    request.post(options, func)
+    loginJoe ->
+      request.post(options, func)
 
   it 'can\'t be created if invalid (property path is required)', (done) ->
     func = (err, res, body) ->
diff --git a/test/server/handlers/level.spec.coffee b/test/server/functional/level.spec.coffee
similarity index 100%
rename from test/server/handlers/level.spec.coffee
rename to test/server/functional/level.spec.coffee
diff --git a/test/server/handlers/level_component.spec.coffee b/test/server/functional/level_component.spec.coffee
similarity index 100%
rename from test/server/handlers/level_component.spec.coffee
rename to test/server/functional/level_component.spec.coffee
diff --git a/test/server/handlers/level_draft.spec.coffee b/test/server/functional/level_draft.spec.coffee
similarity index 100%
rename from test/server/handlers/level_draft.spec.coffee
rename to test/server/functional/level_draft.spec.coffee
diff --git a/test/server/handlers/level_feedback.spec.coffee b/test/server/functional/level_feedback.spec.coffee
similarity index 100%
rename from test/server/handlers/level_feedback.spec.coffee
rename to test/server/functional/level_feedback.spec.coffee
diff --git a/test/server/handlers/level_session.spec.coffee b/test/server/functional/level_session.spec.coffee
similarity index 100%
rename from test/server/handlers/level_session.spec.coffee
rename to test/server/functional/level_session.spec.coffee
diff --git a/test/server/handlers/level_system.spec.coffee b/test/server/functional/level_system.spec.coffee
similarity index 100%
rename from test/server/handlers/level_system.spec.coffee
rename to test/server/functional/level_system.spec.coffee
diff --git a/test/server/handlers/level_thang_component.spec.coffee b/test/server/functional/level_thang_component.spec.coffee
similarity index 100%
rename from test/server/handlers/level_thang_component.spec.coffee
rename to test/server/functional/level_thang_component.spec.coffee
diff --git a/test/server/handlers/level_thang_type.spec.coffee b/test/server/functional/level_thang_type.spec.coffee
similarity index 100%
rename from test/server/handlers/level_thang_type.spec.coffee
rename to test/server/functional/level_thang_type.spec.coffee
diff --git a/test/server/handlers/user.spec.coffee b/test/server/functional/user.spec.coffee
similarity index 100%
rename from test/server/handlers/user.spec.coffee
rename to test/server/functional/user.spec.coffee
diff --git a/test/server/models/CampaignStatus.spec.coffee b/test/server/integration/models/CampaignStatus.spec.coffee
similarity index 97%
rename from test/server/models/CampaignStatus.spec.coffee
rename to test/server/integration/models/CampaignStatus.spec.coffee
index 155a52a9a..8a6b64c66 100644
--- a/test/server/models/CampaignStatus.spec.coffee
+++ b/test/server/integration/models/CampaignStatus.spec.coffee
@@ -1,4 +1,4 @@
-require '../common'
+require '../../common'
 
 describe 'CampaignStatus', ->
 
diff --git a/test/server/models/Level.spec.coffee b/test/server/integration/models/Level.spec.coffee
similarity index 97%
rename from test/server/models/Level.spec.coffee
rename to test/server/integration/models/Level.spec.coffee
index ce061d46c..7cbc286d7 100644
--- a/test/server/models/Level.spec.coffee
+++ b/test/server/integration/models/Level.spec.coffee
@@ -1,4 +1,4 @@
-require '../common'
+require '../../common'
 
 describe 'Level', ->
 
diff --git a/test/server/models/LevelComponent.spec.coffee b/test/server/integration/models/LevelComponent.spec.coffee
similarity index 95%
rename from test/server/models/LevelComponent.spec.coffee
rename to test/server/integration/models/LevelComponent.spec.coffee
index 793ca70ed..90dc5779d 100644
--- a/test/server/models/LevelComponent.spec.coffee
+++ b/test/server/integration/models/LevelComponent.spec.coffee
@@ -1,4 +1,4 @@
-require '../common'
+require '../../common'
 
 describe 'LevelComponent', ->
 
diff --git a/test/server/models/LevelDraft.spec.coffee b/test/server/integration/models/LevelDraft.spec.coffee
similarity index 96%
rename from test/server/models/LevelDraft.spec.coffee
rename to test/server/integration/models/LevelDraft.spec.coffee
index 0279f2ac4..07b5c7a50 100644
--- a/test/server/models/LevelDraft.spec.coffee
+++ b/test/server/integration/models/LevelDraft.spec.coffee
@@ -1,4 +1,4 @@
-require '../common'
+require '../../common'
 
 describe 'LevelDraft', ->
 
diff --git a/test/server/models/LevelSession.spec.coffee b/test/server/integration/models/LevelSession.spec.coffee
similarity index 93%
rename from test/server/models/LevelSession.spec.coffee
rename to test/server/integration/models/LevelSession.spec.coffee
index 3fa170e4e..ecfeefd32 100644
--- a/test/server/models/LevelSession.spec.coffee
+++ b/test/server/integration/models/LevelSession.spec.coffee
@@ -1,4 +1,4 @@
-require '../common'
+require '../../common'
 
 describe 'LevelSession', ->
 
diff --git a/test/server/models/LevelSystem.spec.coffee b/test/server/integration/models/LevelSystem.spec.coffee
similarity index 95%
rename from test/server/models/LevelSystem.spec.coffee
rename to test/server/integration/models/LevelSystem.spec.coffee
index 70080d717..39008f9f7 100644
--- a/test/server/models/LevelSystem.spec.coffee
+++ b/test/server/integration/models/LevelSystem.spec.coffee
@@ -1,4 +1,4 @@
-require '../common'
+require '../../common'
 
 describe 'LevelSystem', ->
 
diff --git a/test/server/models/LevelThangType.spec.coffee b/test/server/integration/models/LevelThangType.spec.coffee
similarity index 93%
rename from test/server/models/LevelThangType.spec.coffee
rename to test/server/integration/models/LevelThangType.spec.coffee
index a884a53a2..97e42c756 100644
--- a/test/server/models/LevelThangType.spec.coffee
+++ b/test/server/integration/models/LevelThangType.spec.coffee
@@ -1,4 +1,4 @@
-require '../common'
+require '../../common'
 
 describe 'LevelThangType', ->
 
diff --git a/test/server/models/article.spec.coffee b/test/server/integration/models/article.spec.coffee
similarity index 92%
rename from test/server/models/article.spec.coffee
rename to test/server/integration/models/article.spec.coffee
index 6e3ff5c64..51ba6e423 100644
--- a/test/server/models/article.spec.coffee
+++ b/test/server/integration/models/article.spec.coffee
@@ -1,4 +1,4 @@
-require '../common'
+require '../../common'
 
 describe 'Article', ->
 
diff --git a/test/server/models/campaign.spec.coffee b/test/server/integration/models/campaign.spec.coffee
similarity index 95%
rename from test/server/models/campaign.spec.coffee
rename to test/server/integration/models/campaign.spec.coffee
index fb7717373..68c9e3d12 100644
--- a/test/server/models/campaign.spec.coffee
+++ b/test/server/integration/models/campaign.spec.coffee
@@ -1,4 +1,4 @@
-require '../common'
+require '../../common'
 
 describe 'Campaign', ->
 
diff --git a/test/server/models/plugins.spec.coffee b/test/server/integration/models/plugins.spec.coffee
similarity index 99%
rename from test/server/models/plugins.spec.coffee
rename to test/server/integration/models/plugins.spec.coffee
index 626546a88..0c436a7e1 100644
--- a/test/server/models/plugins.spec.coffee
+++ b/test/server/integration/models/plugins.spec.coffee
@@ -1,4 +1,4 @@
-require '../common'
+require '../../common'
 
 describe 'NamePlugin', ->
 
diff --git a/test/server/unit/user.spec.coffee b/test/server/unit/user.spec.coffee
new file mode 100644
index 000000000..00e1cba17
--- /dev/null
+++ b/test/server/unit/user.spec.coffee
@@ -0,0 +1,24 @@
+GLOBAL._ = require('lodash')
+
+User = require '../../../server/users/User'
+
+describe 'user', ->
+
+  it 'is Admin if it has admin permission', (done) ->
+    adminUser = new User()
+    adminUser.set('permissions', ['whatever', 'admin', 'user'])
+    expect(adminUser.isAdmin()).toBeTruthy()
+    done()
+
+  it 'isn\'t Admin if it has no permission', (done) ->
+    myUser = new User()
+    myUser.set('permissions', [])
+    expect(myUser.isAdmin()).toBeFalsy()
+    done()
+
+  it 'isn\'t Admin if it has only user permission', (done) ->
+    classicUser = new User()
+    classicUser.set('permissions', ['user'])
+    expect(classicUser.isAdmin()).toBeFalsy()
+    done()
+