webogram-i2p/test/unit/controllers/EmbedModalController.js
Bart 82957f1b91 Added structure to test directory, Fully tested filters.js (#1393)
* added tests for filter.js, Added structure to test-directory

In the gulpfile I changed some of the karma execution to ensure templates.js exists before the tests
Also removed some StandardJS errors from filters.js

* added tests to create at least 50% coverage for filters.js

* Added test for full coverage of filters.js

* fixed 2 side-cases

* Removed duplicate test, improved test-titles and added outcome clarification for dateOrTimeFilter

* Added test-init

While running ``gulp test`` there were a lot of warnings concerning i18n: key not found
This was because init.js was not run.
Because some parts of init.js were not relevant, I created test-init.js, only containing the part concerning localization.
Now the log is a lot cleaner when running ``gulp test``

* added 'use strict' to testing files

* changed local vars to this.

* improved clarity of mistery numbers

* improved in-test structure

* Improved shortUrl tests

* removed unnecessary code

* added cleanup to single test
2017-04-29 11:54:46 +03:00

93 lines
2.4 KiB
JavaScript

'use strict'
/* global describe, it, inject, expect, beforeEach, jasmine */
describe('EmbedModalController', function () {
var $scope, $rootScope, $webpageManager, $errService, $input, $messManager, $pSelectService, $modalI
beforeEach(module('myApp.controllers'))
beforeEach(function () {
$webpageManager = {}
$webpageManager.wrapForFull = jasmine.createSpy('wrapForFull')
$input = {}
$errService = {
confirm: function (message) {
$input = message
return {
then: function (f) {
f()
}
}
}
}
$pSelectService = {
selectPeer: function (options) {
$input = options
return {
then: function (f) {
f('Peerselected')
}
}
}
}
$messManager = {}
$messManager.deleteMessages = jasmine.createSpy('deleteMessages')
$modalI = {}
$modalI.dismiss = jasmine.createSpy('dismissModal')
inject(function (_$controller_, _$rootScope_) {
$rootScope = _$rootScope_
$rootScope.$broadcast = jasmine.createSpy('$broadcast')
$scope = $rootScope.$new()
$scope.webpageID = 'www.notRelevant.com'
_$controller_('EmbedModalController', {
$q: {},
$scope: $scope,
$rootScope: $rootScope,
$modalInstance: $modalI,
PeersSelectService: $pSelectService,
AppMessagesManager: $messManager,
AppPeersManager: {},
AppPhotosManager: {},
AppWebPagesManager: $webpageManager,
ErrorService: $errService
})
})
})
// define tests
it('sets the embeded webpage in the scope', function (done) {
expect($scope.nav).toEqual({})
expect($webpageManager.wrapForFull).toHaveBeenCalledWith($scope.webpageID)
done()
})
it('forwards a message with an embeded link', function (done) {
$scope.messageID = 'id1234234'
$scope.forward()
expect($input).toEqual({canSend: true})
expect($scope.$broadcast).toHaveBeenCalledWith('history_focus', {
peerString: 'Peerselected',
attachment: {
_: 'fwd_messages',
id: [$scope.messageID]
}
})
done()
})
it('deletes a message with an embeded link', function (done) {
$scope.messageID = 'id979565673'
$scope.delete()
expect($input).toEqual({type: 'MESSAGE_DELETE'})
expect($messManager.deleteMessages).toHaveBeenCalledWith([$scope.messageID])
done()
})
})