| 
									
										
										
										
											2017-02-14 15:04:48 +03:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var assert = require('assert'); | 
					
						
							|  |  |  | var async = require('async'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var db = require('./mocks/databasemock'); | 
					
						
							|  |  |  | var meta = require('../src/meta'); | 
					
						
							|  |  |  | var User = require('../src/user'); | 
					
						
							|  |  |  | var Groups = require('../src/groups'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe('rewards', function () { | 
					
						
							|  |  |  | 	var adminUid; | 
					
						
							|  |  |  | 	var bazUid; | 
					
						
							|  |  |  | 	var herpUid; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	before(function (done) { | 
					
						
							|  |  |  | 		// Create 3 users: 1 admin, 2 regular
 | 
					
						
							|  |  |  | 		async.series([ | 
					
						
							| 
									
										
										
										
											2018-09-30 13:42:33 -04:00
										 |  |  | 			async.apply(User.create, { username: 'foo' }), | 
					
						
							|  |  |  | 			async.apply(User.create, { username: 'baz' }), | 
					
						
							|  |  |  | 			async.apply(User.create, { username: 'herp' }), | 
					
						
							| 
									
										
										
										
											2017-02-14 15:04:48 +03:00
										 |  |  | 		], function (err, uids) { | 
					
						
							|  |  |  | 			if (err) { | 
					
						
							|  |  |  | 				return done(err); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			adminUid = uids[0]; | 
					
						
							|  |  |  | 			bazUid = uids[1]; | 
					
						
							|  |  |  | 			herpUid = uids[2]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			async.series([ | 
					
						
							|  |  |  | 				function (next) { | 
					
						
							| 
									
										
										
										
											2017-02-18 15:05:36 -07:00
										 |  |  | 					Groups.join('administrators', adminUid, next); | 
					
						
							| 
									
										
										
										
											2017-02-14 15:04:48 +03:00
										 |  |  | 				}, | 
					
						
							|  |  |  | 				function (next) { | 
					
						
							| 
									
										
										
										
											2017-02-18 15:05:36 -07:00
										 |  |  | 					Groups.join('rewardGroup', adminUid, next); | 
					
						
							| 
									
										
										
										
											2017-02-17 19:31:21 -07:00
										 |  |  | 				}, | 
					
						
							| 
									
										
										
										
											2017-02-14 15:04:48 +03:00
										 |  |  | 			], done); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	describe('rewards create', function () { | 
					
						
							|  |  |  | 		var socketAdmin = require('../src/socket.io/admin'); | 
					
						
							|  |  |  | 		var rewards = require('../src/rewards'); | 
					
						
							|  |  |  | 		it('it should save a reward', function (done) { | 
					
						
							|  |  |  | 			var data = [ | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					rewards: { groupname: 'Gamers' }, | 
					
						
							|  |  |  | 					condition: 'essentials/user.postcount', | 
					
						
							|  |  |  | 					conditional: 'greaterthan', | 
					
						
							|  |  |  | 					value: '10', | 
					
						
							|  |  |  | 					rid: 'essentials/add-to-group', | 
					
						
							|  |  |  | 					claimable: '1', | 
					
						
							|  |  |  | 					id: '', | 
					
						
							| 
									
										
										
										
											2017-02-17 19:31:21 -07:00
										 |  |  | 					disabled: false, | 
					
						
							|  |  |  | 				}, | 
					
						
							| 
									
										
										
										
											2017-02-14 15:04:48 +03:00
										 |  |  | 			]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-18 12:30:49 -07:00
										 |  |  | 			socketAdmin.rewards.save({ uid: adminUid }, data, function (err) { | 
					
						
							| 
									
										
										
										
											2017-02-14 15:04:48 +03:00
										 |  |  | 				assert.ifError(err); | 
					
						
							|  |  |  | 				done(); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		it('should check condition', function (done) { | 
					
						
							|  |  |  | 			function method(next) { | 
					
						
							|  |  |  | 				next(null, 1); | 
					
						
							|  |  |  | 			} | 
					
						
							| 
									
										
										
										
											2019-09-17 09:12:45 -04:00
										 |  |  | 			rewards.checkConditionAndRewardUser({ | 
					
						
							|  |  |  | 				uid: adminUid, | 
					
						
							|  |  |  | 				condition: 'essentials/user.postcount', | 
					
						
							|  |  |  | 				method: method, | 
					
						
							|  |  |  | 			}, function (err, data) { | 
					
						
							| 
									
										
										
										
											2017-02-14 15:04:48 +03:00
										 |  |  | 				assert.ifError(err); | 
					
						
							|  |  |  | 				done(); | 
					
						
							|  |  |  | 			}); | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 	}); | 
					
						
							|  |  |  | }); |