UNPKG

2.67 kBJavaScriptView Raw
1// Jasmine test. Get current user
2
3var CodeGradX = require('../codegradxlib.js');
4var authData = require('./auth1-data.json'); // lambda student
5
6describe('CodeGradX', function () {
7
8 it('should be loaded', function () {
9 expect(CodeGradX).toBeDefined();
10 });
11
12 function make_faildone (done) {
13 return function faildone (reason) {
14 var state = CodeGradX.getCurrentState();
15 state.debug('faildone', reason).show();
16 //console.log(reason);
17 fail(reason);
18 done();
19 };
20 }
21
22 it("really authenticate and check", function (done) {
23 var state = new CodeGradX.State();
24 var faildone = make_faildone(done);
25 state.getAuthenticatedUser(authData.login, authData.password)
26 .then(function (user) {
27 expect(user).toBeDefined();
28 expect(user).toBe(state.currentUser);
29 CodeGradX.getCurrentUser()
30 .then(function (user2) {
31 expect(user2).toBe(user);
32 done();
33 }).catch(faildone);
34 }, faildone);
35 });
36
37 function hash2array (o) {
38 let result = [];
39 Object.keys(o).forEach((key) => {
40 result.push(o[key]);
41 });
42 return result;
43 }
44
45 it("get campaigns", function (done) {
46 var faildone = make_faildone(done);
47 CodeGradX.getCurrentUser()
48 .then(function (user) {
49 return user.getCampaigns()
50 .then(function (campaigns) {
51 //console.log(campaigns);
52 expect(campaigns).toBeDefined();
53 expect(campaigns instanceof Object).toBeTruthy();
54 expect(campaigns.checks).toBeDefined();
55 expect(campaigns.free).toBeDefined();
56 expect(hash2array(campaigns).length).toBeGreaterThan(2);
57 done();
58 });
59 }).catch(faildone);
60 });
61
62 it("get a campaign (after campaigns)", function (done) {
63 var faildone = make_faildone(done);
64 CodeGradX.getCurrentUser()
65 .then(function (user) {
66 return user.getCampaign('free')
67 .then(function (campaign) {
68 //console.log(campaigns);
69 expect(campaign).toBeDefined();
70 expect(campaign instanceof Object).toBeTruthy();
71 expect(campaign.name).toBe('free');
72 done();
73 });
74 }).catch(faildone);
75 });
76
77});