Added fixes for tests on CI

This commit is contained in:
Wyatt Johnson
2017-01-24 13:45:06 -07:00
parent 9dc57c82d1
commit 0a5a23c1f3
18 changed files with 47 additions and 38 deletions
+7 -1
View File
@@ -22,7 +22,13 @@ program
.command('init')
.description('initilizes the talk settings')
.action(() => {
const defaults = {id: '1', moderation: 'PRE'};
const defaults = {
moderation: 'PRE',
wordlist: {
banned: [],
suspect: []
}
};
SettingsService
.init(defaults)
+2 -1
View File
@@ -7,8 +7,9 @@ machine:
test:
override:
- MOCHA_FILE=$CIRCLE_TEST_REPORTS/junit/test-results.xml ./node_modules/.bin/mocha tests --reporter mocha-junit-reporter
- npm run lint
- ./bin/cli settings init
- MOCHA_FILE=$CIRCLE_TEST_REPORTS/junit/test-results.xml ./node_modules/.bin/mocha tests --reporter mocha-junit-reporter
- npm run build
deployment:
@@ -65,8 +65,8 @@ class Table extends Component {
label={lang.t('community.role')}
onChange={role => this.onRoleChange(row.id, role)}>
<Option value={''}>.</Option>
<Option value={'moderator'}>{lang.t('community.moderator')}</Option>
<Option value={'admin'}>{lang.t('community.admin')}</Option>
<Option value={'MODERATOR'}>{lang.t('community.moderator')}</Option>
<Option value={'ADMIN'}>{lang.t('community.admin')}</Option>
</SelectField>
</td>
</tr>
@@ -6,8 +6,9 @@ export default ({userData}) => (
<h1>{userData.displayName}</h1>
{
// Hiding display of users ID unless there's a use case for it.
//<h2>{userData.profiles.map(profile => profile.id)}</h2>
// <h2>{userData.profiles.map(profile => profile.id)}</h2>
}
</div>
);
+1 -1
View File
@@ -916,7 +916,7 @@ definitions:
type: array
items:
type: string
description: Roles occupied by the user (e.g. 'admin', 'moderator', etc.)
description: Roles occupied by the user (e.g. 'ADMIN', 'MODERATOR', etc.)
status:
type: string
description: The current status of the user in the system.
+1 -1
View File
@@ -3,7 +3,7 @@ const Action = {
// This will load the user for the specific action. We'll limit this to the
// admin users only.
user({user_id}, _, {loaders, user}) {
if (user.hasRole('admin')) {
if (user.hasRole('ADMIN')) {
return loaders.Users.getByID.load(user_id);
}
}
-7
View File
@@ -8,13 +8,6 @@ const Comment = {
actions({id}, _, {loaders}) {
return loaders.Actions.getByItemID.load(id);
},
status({status}) {
// Because the status can be `null`, we do this check.
if (status) {
return status.toUpperCase();
}
},
asset({asset_id}, _, {loaders}) {
return loaders.Assets.getByID.load(asset_id);
}
+2 -2
View File
@@ -1,6 +1,6 @@
const RootQuery = {
assets(_, args, {loaders, user}) {
if (user == null || !user.hasRoles('admin')) {
if (user == null || !user.hasRoles('ADMIN')) {
return null;
}
@@ -25,7 +25,7 @@ const RootQuery = {
// This endpoint is used for loading moderation queues, so hide it in the
// event that we aren't an admin.
comments(_, {query}, {loaders, user}) {
if (user == null || !user.hasRoles('admin')) {
if (user == null || !user.hasRoles('ADMIN')) {
return null;
}
+1 -1
View File
@@ -6,7 +6,7 @@ const User = {
// If the user is not an admin, only return comment list for the owner of
// the comments.
if (!user.hasRoles('admin') || user.id !== id) {
if (!user.hasRoles('ADMIN') || user.id !== id) {
return null;
}
-1
View File
@@ -4,7 +4,6 @@ module.exports = () => Promise.all([
// Upsert the settings object.
SettingsService.init({
id: '1',
moderation: 'PRE',
wordlist: {
banned: [],
+1 -1
View File
@@ -15,7 +15,7 @@ router.get('/login', (req, res, next) => {
});
router.get('*', (req, res) => {
res.render('admin', {basePath: '/client/coral-admin'});
res.render('ADMIN', {basePath: '/client/coral-admin'});
});
module.exports = router;
+6 -6
View File
@@ -22,13 +22,13 @@ router.get('/', (req, res, next) => {
} = req.query;
// everything on this route requires admin privileges besides listing comments for owner of said comments
if (!authorization.has(req.user, 'admin') && !user_id) {
if (!authorization.has(req.user, 'ADMIN') && !user_id) {
next(errors.ErrNotAuthorized);
return;
}
// if the user is not an admin, only return comment list for the owner of the comments
if (req.user.id !== user_id && !authorization.has(req.user, 'admin')) {
if (req.user.id !== user_id && !authorization.has(req.user, 'ADMIN')) {
next(errors.ErrNotAuthorized);
return;
}
@@ -50,7 +50,7 @@ router.get('/', (req, res, next) => {
// otherwise this will be a vulnerability if you pass user_id and something else,
// the app will return admin-level data without the proper checks
if (user_id) {
query = CommentsService.findByUserId(user_id, authorization.has(req.user, 'admin'));
query = CommentsService.findByUserId(user_id, authorization.has(req.user, 'ADMIN'));
} else if (status) {
query = assetIDWrap(CommentsService.findByStatus(status === 'NEW' ? null : status));
} else if (action_type) {
@@ -85,7 +85,7 @@ router.get('/', (req, res, next) => {
});
});
router.get('/:comment_id', authorization.needed('admin'), (req, res, next) => {
router.get('/:comment_id', authorization.needed('ADMIN'), (req, res, next) => {
CommentsService
.findById(req.params.comment_id)
.then(comment => {
@@ -101,7 +101,7 @@ router.get('/:comment_id', authorization.needed('admin'), (req, res, next) => {
});
});
router.delete('/:comment_id', authorization.needed('admin'), (req, res, next) => {
router.delete('/:comment_id', authorization.needed('ADMIN'), (req, res, next) => {
CommentsService
.removeById(req.params.comment_id)
.then(() => {
@@ -112,7 +112,7 @@ router.delete('/:comment_id', authorization.needed('admin'), (req, res, next) =>
});
});
router.put('/:comment_id/status', authorization.needed('admin'), (req, res, next) => {
router.put('/:comment_id/status', authorization.needed('ADMIN'), (req, res, next) => {
const {
status
} = req.body;
+4 -4
View File
@@ -3,9 +3,9 @@ const authorization = require('../../middleware/authorization');
const router = express.Router();
router.use('/assets', authorization.needed('admin'), require('./assets'));
router.use('/settings', authorization.needed('admin'), require('./settings'));
router.use('/queue', authorization.needed('admin'), require('./queue'));
router.use('/assets', authorization.needed('ADMIN'), require('./assets'));
router.use('/settings', authorization.needed('ADMIN'), require('./settings'));
router.use('/queue', authorization.needed('ADMIN'), require('./queue'));
router.use('/comments', authorization.needed(), require('./comments'));
router.use('/actions', authorization.needed(), require('./actions'));
@@ -15,6 +15,6 @@ router.use('/users', require('./users'));
router.use('/account', require('./account'));
// Bind the kue handler to the /kue path.
router.use('/kue', authorization.needed('admin'), require('../../services/kue').kue.app);
router.use('/kue', authorization.needed('ADMIN'), require('../../services/kue').kue.app);
module.exports = router;
+3 -3
View File
@@ -27,7 +27,7 @@ function gatherActionsAndUsers (comments) {
// depending on the settings. The :moderation overwrites this settings.
// Pre-moderation: New comments are shown in the moderator queues immediately.
// Post-moderation: New comments do not appear in moderation queues unless they are flagged by other users.
router.get('/comments/pending', authorization.needed('admin'), (req, res, next) => {
router.get('/comments/pending', authorization.needed('ADMIN'), (req, res, next) => {
const {asset_id} = req.query;
@@ -41,7 +41,7 @@ router.get('/comments/pending', authorization.needed('admin'), (req, res, next)
});
});
router.get('/comments/rejected', authorization.needed('admin'), (req, res, next) => {
router.get('/comments/rejected', authorization.needed('ADMIN'), (req, res, next) => {
const {asset_id} = req.query;
CommentsService.moderationQueue('REJECTED', asset_id)
@@ -54,7 +54,7 @@ router.get('/comments/rejected', authorization.needed('admin'), (req, res, next)
});
});
router.get('/comments/flagged', authorization.needed('admin'), (req, res, next) => {
router.get('/comments/flagged', authorization.needed('ADMIN'), (req, res, next) => {
const {asset_id} = req.query;
const assetIDWrap = (query) => {
+4 -4
View File
@@ -6,7 +6,7 @@ const CommentsService = require('../../../services/comments');
const mailer = require('../../../services/mailer');
const authorization = require('../../../middleware/authorization');
router.get('/', authorization.needed('admin'), (req, res, next) => {
router.get('/', authorization.needed('ADMIN'), (req, res, next) => {
const {
value = '',
field = 'created_at',
@@ -35,7 +35,7 @@ router.get('/', authorization.needed('admin'), (req, res, next) => {
.catch(next);
});
router.post('/:user_id/role', authorization.needed('admin'), (req, res, next) => {
router.post('/:user_id/role', authorization.needed('ADMIN'), (req, res, next) => {
UsersService
.addRoleToUser(req.params.user_id, req.body.role)
.then(() => {
@@ -44,7 +44,7 @@ router.post('/:user_id/role', authorization.needed('admin'), (req, res, next) =>
.catch(next);
});
router.post('/:user_id/status', authorization.needed('admin'), (req, res, next) => {
router.post('/:user_id/status', authorization.needed('ADMIN'), (req, res, next) => {
UsersService
.setStatus(req.params.user_id, req.body.status)
.then((status) => {
@@ -138,7 +138,7 @@ router.post('/:user_id/actions', authorization.needed(), (req, res, next) => {
});
});
router.post('/:user_id/email/confirm', authorization.needed('admin'), (req, res, next) => {
router.post('/:user_id/email/confirm', authorization.needed('ADMIN'), (req, res, next) => {
const {
user_id
} = req.params;
+9
View File
@@ -57,3 +57,12 @@ mongoose.connect(url, (err) => {
});
module.exports = mongoose;
// Here we include all the models that mongoose is used for, this ensures that
// when we import mongoose that we also start up all the indexing opreations
// here.
require('../models/action');
require('../models/asset');
require('../models/comment');
require('../models/setting');
require('../models/user');
+1 -1
View File
@@ -1,5 +1,5 @@
module.exports = {
'@tags': ['login', 'admin'],
'@tags': ['login', 'ADMIN'],
before(client) {
const embedStreamPage = client.page.embedStreamPage();
const {launchUrl} = client;
+1 -1
View File
@@ -1,5 +1,5 @@
module.exports = {
'@tags': ['login', 'moderator'],
'@tags': ['login', 'MODERATOR'],
before: client => {
const embedStreamPage = client.page.embedStreamPage();
const {launchUrl} = client;