فهرست منبع

get email from profile api

Girish Ramakrishnan 9 سال پیش
والد
کامیت
e05c7f116a
2فایلهای تغییر یافته به همراه26 افزوده شده و 3 حذف شده
  1. 1 1
      README.md
  2. 25 2
      test/test.js

+ 1 - 1
README.md

@@ -31,6 +31,6 @@ The e2e tests are located in the `test/` folder and require [nodejs](http://node
 cd gogs-app/test
 
 npm install
-USERNAME=<cloudron username> EMAIL=<cloudron email> PASSWORD=<cloudron password> mocha --bail test.js
+USERNAME=<cloudron username> PASSWORD=<cloudron password> mocha --bail test.js
 ```
 

+ 25 - 2
test/test.js

@@ -33,12 +33,11 @@ describe('Application life cycle test', function () {
     var app, reponame = 'testrepo';
     var username = process.env.USERNAME;
     var password = process.env.PASSWORD;
-    var email = process.env.EMAIL;
+    var email, token;
 
     before(function (done) {
         if (!process.env.USERNAME) return done(new Error('USERNAME env var not set'));
         if (!process.env.PASSWORD) return done(new Error('PASSWORD env var not set'));
-        if (!process.env.EMAIL) return done(new Error('EMAIL env var not set'));
 
         var seleniumJar= require('selenium-server-standalone-jar');
         var SeleniumServer = require('selenium-webdriver/remote').SeleniumServer;
@@ -59,6 +58,30 @@ describe('Application life cycle test', function () {
         execSync('cloudron build', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
     });
 
+    it('can login', function (done) {
+        var inspect = JSON.parse(execSync('cloudron inspect'));
+
+        superagent.post('https://' + inspect.apiEndpoint + '/api/v1/developer/login').send({
+            username: username,
+            password: password
+        }).end(function (error, result) {
+            if (error) return done(error);
+            if (result.statusCode !== 200) return done(new Error('Login failed with status ' + result.statusCode));
+
+            token = result.body.token;
+
+            superagent.get('https://' + inspect.apiEndpoint + '/api/v1/profile')
+                .query({ access_token: token }).end(function (error, result) {
+                if (error) return done(error);
+                if (result.statusCode !== 200) return done(new Error('Get profile failed with status ' + result.statusCode));
+
+                email = result.body.email;
+                done();
+            });
+        });
+    });
+
+
     it('install app', function () {
         execSync('cloudron install --new --wait --location ' + LOCATION, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
     });