Telegram Web, preconfigured for usage in I2P.
http://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.8 KiB
108 lines
2.8 KiB
'use strict' |
|
/* global describe, it, inject, expect, beforeEach, jasmine */ |
|
|
|
describe('ProfileEditModalController', function () { |
|
beforeEach(module('myApp.controllers')) |
|
|
|
beforeEach(function () { |
|
var id = 42 |
|
this.randomID = id |
|
|
|
this.MtpApiManager = { |
|
errorField: null, |
|
getUserID: function () { |
|
return { |
|
then: function (callback) { |
|
callback(id) |
|
} |
|
} |
|
}, |
|
invokeApi: function (action, params) { |
|
return this |
|
}, |
|
then: function (callback, error) { |
|
if (!this.errorField) { |
|
callback({}) |
|
} else { |
|
error(this.errorField) |
|
} |
|
return { |
|
finally: function (final) { |
|
final() |
|
} |
|
} |
|
} |
|
} |
|
|
|
this.AppUsersManager = { |
|
getUser: function (userId) { |
|
return { |
|
first_name: 'John', |
|
last_name: 'Doe' |
|
} |
|
}, |
|
saveApiUser: jasmine.createSpy('saveApiUser') |
|
} |
|
this.$modalInstance = { close: jasmine.createSpy('close') } |
|
|
|
inject(function (_$controller_, _$rootScope_) { |
|
this.$controller = _$controller_ |
|
this.$scope = _$rootScope_.$new() |
|
|
|
this.$controller('ProfileEditModalController', { |
|
$scope: this.$scope, |
|
$modalInstance: this.$modalInstance, |
|
AppUsersManager: this.AppUsersManager, |
|
MtpApiManager: this.MtpApiManager |
|
}) |
|
}) |
|
}) |
|
|
|
it('should initiate the right scope', function (done) { |
|
expect(this.$scope.profile).toEqual({first_name: 'John', last_name: 'Doe'}) |
|
expect(this.$scope.error).toEqual({}) |
|
done() |
|
}) |
|
|
|
it('can send a successful profile update request', function (done) { |
|
this.$scope.updateProfile() |
|
|
|
expect(this.AppUsersManager.saveApiUser).toHaveBeenCalled() |
|
expect(this.$modalInstance.close).toHaveBeenCalled() |
|
done() |
|
}) |
|
|
|
it('can handle empty name/surname', function (done) { |
|
delete this.$scope.profile.first_name |
|
delete this.$scope.profile.last_name |
|
this.$scope.updateProfile() |
|
|
|
expect(this.AppUsersManager.saveApiUser).toHaveBeenCalled() |
|
expect(this.$modalInstance.close).toHaveBeenCalled() |
|
done() |
|
}) |
|
|
|
it('can handle an invalid first name error', function (done) { |
|
this.MtpApiManager.errorField = {type: 'FIRSTNAME_INVALID'} |
|
this.$scope.updateProfile() |
|
|
|
expect(this.$scope.error.field).toEqual('first_name') |
|
done() |
|
}) |
|
|
|
it('can handle an invalid last name error', function (done) { |
|
this.MtpApiManager.errorField = {type: 'LASTNAME_INVALID'} |
|
this.$scope.updateProfile() |
|
|
|
expect(this.$scope.error.field).toEqual('last_name') |
|
done() |
|
}) |
|
|
|
it('can handle an unmodified name error', function (done) { |
|
this.MtpApiManager.errorField = {type: 'NAME_NOT_MODIFIED'} |
|
this.$scope.updateProfile() |
|
|
|
expect(this.$modalInstance.close).toHaveBeenCalled() |
|
done() |
|
}) |
|
})
|
|
|