Added test directory, karma conf, and angular-mocks. Expect it to work? Pah, not yet.

This commit is contained in:
Kegan Dougal 2014-09-18 17:59:04 +01:00
parent faec6f7f31
commit 6a6a718898
3 changed files with 2314 additions and 0 deletions

2173
webclient/js/angular-mocks.js vendored Executable file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,82 @@
// Karma configuration
// Generated on Thu Sep 18 2014 14:25:57 GMT+0100 (BST)
module.exports = function(config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
// XXX: Order is important, and doing /js/angular* makes the tests not run :/
files: [
'../js/jquery*',
'../js/angular.js',
'../js/angular-mocks.js',
'../js/angular-route.js',
'../js/angular-animate.js',
'../js/angular-sanitize.js',
'../js/ng-infinite-scroll-matrix.js',
'../login/**/*.*',
'../room/**/*.*',
'../components/**/*.*',
'../user/**/*.*',
'../home/**/*.*',
'../recents/**/*.*',
'../settings/**/*.*',
'../app.js',
'../app*',
'./unit/**/*.js'
],
// list of files to exclude
exclude: [
],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
},
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_DEBUG,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['Chrome'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false
});
};

View file

@ -0,0 +1,59 @@
describe("UserCtrl", function() {
var scope, ctrl, matrixService, routeParams, $q, $timeout;
var userId = "@foo:bar";
var displayName = "Foo";
var avatarUrl = "avatar.url";
beforeEach(module('matrixWebClient'));
beforeEach(function() {
inject(function($rootScope, $injector, $controller, _$q_, _$timeout_) {
$q = _$q_;
$timeout = _$timeout_;
matrixService = {
config: function() {
return {
user_id: userId
};
},
getDisplayName: function(uid) {
var d = $q.defer();
// FIXME: everything goes into fire here
d.resolve({
data: {
displayname: displayName
}
});
return d;
},
getProfilePictureUrl: function(uid) {
var d = $q.defer();
d.resolve({
data: {
avatar_url: avatarUrl
}
});
return d;
}
};
scope = $rootScope.$new();
routeParams = {
user_matrix_id: userId
};
ctrl = $controller('UserController', {
'$scope': scope,
'$routeParams': routeParams,
'matrixService': matrixService
});
console.log("end inject");
});
});
it('should display your user id', function() {
expect(scope.user_id).toEqual(userId);
});
});