Finishing tests for MatchFragment nodes
This commit is contained in:
parent
68e4bed048
commit
cf159c28a5
@ -57,9 +57,74 @@ describe('parser/javascript/match_fragment.js', function() {
|
||||
|
||||
beforeEach(function() {
|
||||
this.node = new javascript.Parser('a').__consume__match_fragment();
|
||||
|
||||
this.node.container = jasmine.createSpyObj('container', [
|
||||
'addClass',
|
||||
'group',
|
||||
'prepend',
|
||||
'path'
|
||||
]);
|
||||
this.node.container.group.and.returnValue('example group');
|
||||
|
||||
this.renderDeferred = Q.defer();
|
||||
this.node.content = jasmine.createSpyObj('content', [
|
||||
'render',
|
||||
'transform',
|
||||
'getBBox'
|
||||
]);
|
||||
this.node.content.getBBox.and.returnValue('content bbox');
|
||||
this.node.content.render.and.returnValue(this.renderDeferred.promise);
|
||||
|
||||
this.node.repeat = {
|
||||
contentPosition: 'example position'
|
||||
};
|
||||
|
||||
spyOn(this.node, 'skipPath').and.returnValue('skip path');
|
||||
spyOn(this.node, 'loopPath').and.returnValue('loop path');
|
||||
spyOn(this.node, 'loopLabel');
|
||||
});
|
||||
|
||||
pending();
|
||||
it('renders the content', function() {
|
||||
this.node._render();
|
||||
expect(this.node.content.render).toHaveBeenCalledWith('example group');
|
||||
});
|
||||
|
||||
describe('positioning of content', function() {
|
||||
|
||||
beforeEach(function() {
|
||||
this.renderDeferred.resolve();
|
||||
});
|
||||
|
||||
it('moves the content to the correct position', function(done) {
|
||||
this.node._render()
|
||||
.then(() => {
|
||||
expect(this.node.content.transform).toHaveBeenCalledWith('example position');
|
||||
})
|
||||
.finally(done)
|
||||
.done();
|
||||
});
|
||||
|
||||
it('renders a skip path and loop path', function(done) {
|
||||
this.node._render()
|
||||
.then(() => {
|
||||
expect(this.node.skipPath).toHaveBeenCalledWith('content bbox');
|
||||
expect(this.node.loopPath).toHaveBeenCalledWith('content bbox');
|
||||
expect(this.node.container.path).toHaveBeenCalledWith('skip pathloop path');
|
||||
})
|
||||
.finally(done)
|
||||
.done();
|
||||
});
|
||||
|
||||
it('renders a loop label', function(done) {
|
||||
this.node._render()
|
||||
.then(() => {
|
||||
expect(this.node.loopLabel).toHaveBeenCalled();
|
||||
})
|
||||
.finally(done)
|
||||
.done();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@ -67,9 +132,38 @@ describe('parser/javascript/match_fragment.js', function() {
|
||||
|
||||
beforeEach(function() {
|
||||
this.node = new javascript.Parser('a').__consume__match_fragment();
|
||||
|
||||
this.node.repeat = {};
|
||||
|
||||
this.box = {
|
||||
y: 11,
|
||||
ay: 22,
|
||||
width: 33
|
||||
};
|
||||
});
|
||||
|
||||
it('returns nothing when there is no skip', function() {
|
||||
this.node.repeat.hasSkip = false;
|
||||
expect(this.node.skipPath(this.box)).toEqual([]);
|
||||
});
|
||||
|
||||
it('returns a path when there is a skip', function() {
|
||||
this.node.repeat.hasSkip = true;
|
||||
this.node.repeat.greedy = true;
|
||||
expect(this.node.skipPath(this.box)).toEqual([
|
||||
'M0,22q10,0 10,-10v-1q0,-10 10,-10h23q10,0 10,10v1q0,10 10,10'
|
||||
]);
|
||||
});
|
||||
|
||||
it('returns a path with arrow when there is a non-greedy skip', function() {
|
||||
this.node.repeat.hasSkip = true;
|
||||
this.node.repeat.greedy = false;
|
||||
expect(this.node.skipPath(this.box)).toEqual([
|
||||
'M0,22q10,0 10,-10v-1q0,-10 10,-10h23q10,0 10,10v1q0,10 10,10',
|
||||
'M10,7l5,5m-5,-5l-5,5'
|
||||
]);
|
||||
});
|
||||
|
||||
pending();
|
||||
|
||||
});
|
||||
|
||||
|
@ -34,8 +34,7 @@ export default {
|
||||
|
||||
this.container.prepend(
|
||||
this.container.path(paths.join('')));
|
||||
})
|
||||
.then(() => {
|
||||
|
||||
this.loopLabel();
|
||||
});
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user