Ejemplo n.º 1
0
tape( 'one can create a cohort with an array of members', function test( t ) {
	function createCohort( members, next ) {
		var o = {
			'title': 'members_only',
			'members': members
		};
		Cohort.create( o, function onCreate( err, createdCohort ) {
			if ( err ) {
				return next( err );
			}
			t.strictEqual( createdCohort.title, 'members_only', 'has correct title' );
			t.ok( isArray( createdCohort.members ), 'has members' );
			next();
		});
	}

	function done( error ) {
		if ( error ) {
			t.fail( 'should not return an error' );
		} else {
			t.pass( 'executed without errors' );
		}
		t.end();
	}
	waterfall( [ papply( utils.createUser, [
		{
			'email': '*****@*****.**',
			'password': '******'
		},
		{
			'email': '*****@*****.**',
			'password': '******'
		}
	] ), createCohort ], done );
});
Ejemplo n.º 2
0
tape( 'successfully creates a session data object for a given lesson and user', function test( t ) {
	function createLesson( obj, next ) {
		var o = {
			'title': 'My first lesson',
			'namespace': obj.namespace
		};
		Lesson.create( o, function onCreate( err, lesson ) {
			if ( err ) {
				return next( err );
			}
			next( null, {
				'user': obj.user,
				'lesson': lesson
			});
		});
	}
	function createSessionData( obj, next ) {
		var data = {
			'name': '',
			'email': '*****@*****.**',
			'time': 25509,
			'absoluteTime': 1499033385712,
			'value': '2',
			'type': 'RSHELL_EVALUATION',
			'id': 'Question 1'
		};
		SessionData.create({
			'type': 'action',
			'data': data,
			'user': obj.user,
			'lesson': obj.lesson
		}, function onCreate( err, sessionData ) {
			if ( err ) {
				return next( err );
			}
			t.strictEqual( sessionData.type, 'action', 'has expected type' );
			t.deepEqual( sessionData.data, data, 'has expected data' );
			t.strictEqual( sessionData.user, obj.user, 'has expected user' );
			t.strictEqual( sessionData.lesson, obj.lesson, 'has expected lesson' );
			next( null );
		});
	}
	function done( error ) {
		if ( error ) {
			t.fail( 'should not return an error' );
		} else {
			t.pass( 'executed without errors' );
		}
		t.end();
	}
	waterfall( [ papply( utils.createUser, {
		'email': '*****@*****.**',
		'password': '******'
	}), papply( createNamespace, {
		'title': 'Lesson_Namespace',
		'description': 'A namespace with lessons'
	}), createLesson, createSessionData ], done );
});
Ejemplo n.º 3
0
tape( 'fails creating a session for a given lesson and user when no data or type is given', function test( t ) {
	function createLesson( obj, next ) {
		var o = {
			'title': 'My first lesson',
			'namespace': obj.namespace
		};
		Lesson.create( o, function onCreate( err, lesson ) {
			if ( err ) {
				return next( err );
			}
			next( null, {
				'user': obj.user,
				'lesson': lesson
			});
		});
	}
	function createSessionData( obj, next ) {
		SessionData.create({
			'user': obj.user,
			'lesson': obj.lesson
		}, next );
	}
	function done( error ) {
		if ( error ) {
			t.pass( 'should return an error' );
			t.strictEqual( error.message, 'SessionData validation failed: data: Path `data` is required., type: Path `type` is required.', 'returns expected error message' );
		} else {
			t.fail( 'executed without errors' );
		}
		t.end();
	}
	waterfall( [ papply( utils.createUser, {
		'email': '*****@*****.**',
		'password': '******'
	}), papply( createNamespace, {
		'title': 'Lesson_Namespace2',
		'description': 'Another namespace with lessons'
	}), createLesson, createSessionData ], done );
});
Ejemplo n.º 4
0
setReadOnly( ns, 'populateDatabase', function populateDatabase( t ) {
	function createUsers( next ) {
		var pop = [
			{
				'email': '*****@*****.**',
				'name': 'Zorro',
				'password': '******'
			},
			{
				'email': '*****@*****.**',
				'name': 'The Wolfman',
				'password': '******'
			},
			{
				'email': '*****@*****.**',
				'name': 'Count Dracula',
				'password': '******'
			},
			{
				'email': '*****@*****.**',
				'name': 'Ed Wood',
				'password': '******'
			},
			{
				'email': '*****@*****.**',
				'name': 'The Mummy',
				'password': '******'
			},
			{
				'email': '*****@*****.**',
				'name': 'Boris Karloff',
				'password': '******'
			}
		];
		User.create( pop, next );
	}

	function createNamespaces( users, next ) {
		var namespaces = [
			{
				'title': 'Frankenstein meets the Wolf Man',
				'description': 'Open the grave of Larry Talbot',
				'owners': [ users[ 1 ]._id, users[ 5 ]._id ]
			},
			{
				'title': 'Dracula vs. the Wolf Man',
				'description': 'A great match',
				'owners': [ users[ 1 ]._id, users[ 2 ]._id ]
			},
			{
				'title': 'Dracula vs. Frankenstein',
				'description': 'Dracula unearthes Frankenstein',
				'owners': [ users[ 2 ]._id, users[ 5 ]._id ]
			}
		];
		Namespace.create( namespaces, next );
	}

	function createLessons( namespaces, next ) {
		var lessons = [
			{
				namespace: namespaces[ 2 ]._id,
				title: 'Unearth the monster!',
				public: true
			},
			{
				namespace: namespaces[ 2 ]._id,
				title: 'Kill the cemetery keeper!',
				public: true
			},
			{
				namespace: namespaces[ 2 ]._id,
				title: 'Drink his blood!',
				public: false
			},
			{
				namespace: namespaces[ 0 ]._id,
				title: 'Why have you followed me?',
				public: true
			},
			{
				namespace: namespaces[ 0 ]._id,
				title: 'Talbot, you are a murderer!',
				public: true
			},
			{
				namespace: namespaces[ 0 ]._id,
				title: 'Prove it!',
				public: false
			}
		];
		Lesson.create( lessons, next );
	}

	function done( err, res ) {
		if ( err ) {
			t.fail( 'should not return an error' );
		} else {
			t.pass( 'executed without errors' );
		}
		t.end();
	}
	waterfall([ createUsers, createNamespaces, createLessons ], done );
});