Added boilerplate for running end-to-end tests.\nThis is done using Protractor, which looks for a .gitignored file environment-protractor.js which contains the selenium endpoint url.

This commit is contained in:
Kegan Dougal 2014-09-22 14:29:12 +01:00
parent e68dc04900
commit e3152188ef
5 changed files with 30 additions and 6 deletions

1
.gitignore vendored
View File

@ -25,5 +25,6 @@ graph/*.png
graph/*.dot graph/*.dot
webclient/config.js webclient/config.js
webclient/test/environment-protractor.js
uploads uploads

View File

@ -1,9 +1,22 @@
Requires: Requires:
- npm - nodejs/npm
- npm install karma - npm install karma
- npm install jasmine - npm install jasmine
- npm install protractor (e2e testing)
Setting up continuous integration / run the tests: Setting up continuous integration / run the unit tests (make sure you're in
this directory so it can find the config file):
karma start karma start
Setting up e2e tests (only if you don't have a selenium server to run the tests
on. If you do, edit the config to point to that url):
webdriver-manager update
webdriver-manager start
Running e2e tests:
protractor protractor.conf.js

View File

@ -0,0 +1,6 @@
describe("user page", function() {
it("should have a title", function() {
browser.get("http://matrix.org/alpha/#/login");
expect(browser.getTitle()).toEqual("[matrix]");
});
});

View File

@ -0,0 +1,6 @@
var env = require("./environment-protractor.js");
exports.config = {
seleniumAddress: env.seleniumAddress,
specs: ['e2e/*.spec.js']
}

View File

@ -21,13 +21,12 @@ describe("UserCtrl", function() {
getDisplayName: function(uid) { getDisplayName: function(uid) {
var d = $q.defer(); var d = $q.defer();
// FIXME: everything goes into fire here
d.resolve({ d.resolve({
data: { data: {
displayname: displayName displayname: displayName
} }
}); });
return d; return d.promise;
}, },
getProfilePictureUrl: function(uid) { getProfilePictureUrl: function(uid) {
@ -37,7 +36,7 @@ describe("UserCtrl", function() {
avatar_url: avatarUrl avatar_url: avatarUrl
} }
}); });
return d; return d.promise;
} }
}; };
scope = $rootScope.$new(); scope = $rootScope.$new();
@ -49,7 +48,6 @@ describe("UserCtrl", function() {
'$routeParams': routeParams, '$routeParams': routeParams,
'matrixService': matrixService 'matrixService': matrixService
}); });
console.log("end inject");
}); });
}); });