Having a break from trying to test relations directive as i'm demoralised.

pull/1645/head
Richard 10 years ago
parent 2838efddda
commit 0cc6e8a541
  1. 51
      app/assets/javascripts/angular/work_packages/tabs/related-work-package-table-row-directive.js
  2. 66
      karma/tests/directives/work_packages/work-package-relations-directive-test.js

@ -37,40 +37,35 @@ angular.module('openproject.workPackages.tabs')
function(I18n, PathHelper, WorkPackagesHelper, WorkPackageService) {
return {
restrict: 'A',
compile: function(tElement){
return {
pre: function(scope, iElement, iAttrs, controller) {
scope.I18n = I18n;
scope.workPackagePath = PathHelper.staticWorkPackagePath;
scope.userPath = PathHelper.staticUserPath;
link: function(scope) {
scope.I18n = I18n;
scope.workPackagePath = PathHelper.staticWorkPackagePath;
scope.userPath = PathHelper.staticUserPath;
WorkPackagesHelper.getRelatedWorkPackage(scope.workPackage, scope.relation).then(function(relatedWorkPackage){
scope.relatedWorkPackage = relatedWorkPackage;
scope.fullIdentifier = getFullIdentifier(relatedWorkPackage);
});
WorkPackagesHelper.getRelatedWorkPackage(scope.workPackage, scope.relation).then(function(relatedWorkPackage){
scope.relatedWorkPackage = relatedWorkPackage;
scope.fullIdentifier = getFullIdentifier(relatedWorkPackage);
});
scope.removeRelation = function() {
WorkPackageService.removeWorkPackageRelation(scope.relation).then(function(response){
scope.$emit('workPackageRefreshRequired', '');
}, function(error) {
ApiHelper.handleError(scope, error);
});
};
scope.removeRelation = function() {
WorkPackageService.removeWorkPackageRelation(scope.relation).then(function(response){
scope.$emit('workPackageRefreshRequired', '');
}, function(error) {
ApiHelper.handleError(scope, error);
});
};
function getFullIdentifier(workPackage) {
var id = '#' + workPackage.props.id;
function getFullIdentifier(workPackage) {
var id = '#' + workPackage.props.id;
if (workPackage.props.type) {
id += ' ' + workPackage.props.type + ':';
}
id += ' ' + workPackage.props.subject;
if (workPackage.props.type) {
id += ' ' + workPackage.props.type + ':';
}
return id;
};
id += ' ' + workPackage.props.subject;
}
}
return id;
};
}
};
}]);

@ -33,7 +33,7 @@ describe('Work Package Relations Directive', function() {
beforeEach(module('templates', function($provide) {
}));
beforeEach(inject(function($rootScope, $compile, _I18n_, _PathHelper_) {
beforeEach(inject(function($rootScope, $compile, _I18n_, _PathHelper_, _WorkPackagesHelper_) {
scope = $rootScope.$new();
compile = function(html) {
@ -43,6 +43,7 @@ describe('Work Package Relations Directive', function() {
I18n = _I18n_;
PathHelper = _PathHelper_;
WorkPackagesHelper = _WorkPackagesHelper_;
var stub = sinon.stub(I18n, 't');
@ -103,19 +104,55 @@ describe('Work Package Relations Directive', function() {
relatedTo: {
href: "/work_packages/1",
fetch: function() {
$q.when(function() { return { props: { id: 1 }}; } )
return {
then: function() {
return $q.when( workPackage1 );
}
}
}
},
relatedFrom: {
href: "/work_packages/2",
fetch: function() {
$q.when(function() { return { props: { id: 2 }}; } )
return {
then: function() {
return $q.when( workPackage2 );
}
}
}
}
}
};
// sinon.stub(WorkPackagesHelper, 'getRelatedWorkPackage')
// .returns({
// then: function() {
// return $q.when({props: {
// id: "2",
// subject: "Subject 2",
// status: "Status 2"
// }})
// }
// });
// sinon.stub(relation1.links.relatedTo, 'fetch')
// .returns({
// then: function() {
// return $q.when(workPackage1);
// }
// });
// sinon.stub(relation1.links.relatedFrom, 'fetch')
// .returns({
// then: function() {
// return $q.when(workPackage2);
// }
// });
}));
// afterEach(function() {
// WorkPackagesHelper.getRelatedWorkPackage.restore();
// relation1.links.relatedTo.fetch.restore();
// relation1.links.relatedFrom.fetch.restore();
// })
var shouldBehaveLikeRelationsDirective = function() {
it('should have a title', function() {
var title = angular.element(element.find('h3'));
@ -235,24 +272,25 @@ describe('Work Package Relations Directive', function() {
shouldBehaveLikeHasTableHeader();
shouldBehaveLikeHasTableContent(1);
// shouldBehaveLikeHasTableContent(1);
});
// describe('multi element markup', function() {
// beforeEach(function() {
// scope.relations = [workPackage1, workPackage2];
describe('multi element markup', function() {
beforeEach(function() {
scope.workPackage = workPackage2;
scope.relations = [relation1];
// compile(multiElementHtml);
// });
compile(multiElementHtml);
});
// shouldBehaveLikeRelationsDirective();
shouldBehaveLikeRelationsDirective();
// shouldBehaveLikeMultiRelationDirective();
shouldBehaveLikeMultiRelationDirective();
// shouldBehaveLikeExpandedRelationsDirective();
shouldBehaveLikeExpandedRelationsDirective();
// shouldBehaveLikeHasTableHeader();
shouldBehaveLikeHasTableHeader();
// shouldBehaveLikeHasTableContent(2);
// });
});
});

Loading…
Cancel
Save