mirror of https://github.com/masayuki0812/c3.git
Masayuki Tanaka
9 years ago
4 changed files with 270 additions and 6 deletions
File diff suppressed because one or more lines are too long
@ -0,0 +1,250 @@ |
|||||||
|
describe('c3 api region', function () { |
||||||
|
'use strict'; |
||||||
|
|
||||||
|
var chart, args; |
||||||
|
|
||||||
|
beforeEach(function (done) { |
||||||
|
chart = window.initChart(chart, args, done); |
||||||
|
}); |
||||||
|
|
||||||
|
describe('api.region', function () { |
||||||
|
|
||||||
|
it('should update args', function () { |
||||||
|
args = { |
||||||
|
data: { |
||||||
|
columns: [ |
||||||
|
['data1', 30, 200, 100, 400, 150, 250], |
||||||
|
] |
||||||
|
}, |
||||||
|
regions: [ |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 300, |
||||||
|
end: 400, |
||||||
|
class: 'green', |
||||||
|
}, |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 0, |
||||||
|
end: 100, |
||||||
|
class: 'green', |
||||||
|
} |
||||||
|
] |
||||||
|
}; |
||||||
|
expect(true).toBeTruthy(); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should update regions', function (done) { |
||||||
|
var main = chart.internal.main, |
||||||
|
expectedRegions = [ |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 250, |
||||||
|
end: 350, |
||||||
|
class: 'red' |
||||||
|
}, |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 25, |
||||||
|
end: 75, |
||||||
|
class: 'red' |
||||||
|
} |
||||||
|
], |
||||||
|
regions; |
||||||
|
|
||||||
|
// Call regions API
|
||||||
|
chart.regions(expectedRegions); |
||||||
|
setTimeout(function () { |
||||||
|
regions = main.selectAll('.c3-region'); |
||||||
|
expect(regions.size()).toBe(expectedRegions.length); |
||||||
|
|
||||||
|
regions.each(function (d, i) { |
||||||
|
var region = d3.select(this), |
||||||
|
rect = region.select('rect'), |
||||||
|
y = +rect.attr('y'), |
||||||
|
height = +rect.attr('height'), |
||||||
|
expectedClass = 'red', |
||||||
|
unexpectedClass = 'green', |
||||||
|
expectedStart = Math.round(chart.internal.y(expectedRegions[i].start)), |
||||||
|
expectedEnd = Math.round(chart.internal.y(expectedRegions[i].end)), |
||||||
|
expectedY = expectedEnd, |
||||||
|
expectedHeight = expectedStart - expectedEnd; |
||||||
|
expect(y).toBeCloseTo(expectedY, -1); |
||||||
|
expect(height).toBeCloseTo(expectedHeight, -1); |
||||||
|
expect(region.classed(expectedClass)).toBeTruthy(); |
||||||
|
expect(region.classed(unexpectedClass)).toBeFalsy(); |
||||||
|
}); |
||||||
|
}, 500); |
||||||
|
|
||||||
|
setTimeout(function () { |
||||||
|
done(); |
||||||
|
}, 1000); |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
describe('api.region.add', function () { |
||||||
|
|
||||||
|
it('should update args', function () { |
||||||
|
args = { |
||||||
|
data: { |
||||||
|
columns: [ |
||||||
|
['data1', 30, 200, 100, 400, 150, 250], |
||||||
|
] |
||||||
|
}, |
||||||
|
regions: [ |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 300, |
||||||
|
end: 400, |
||||||
|
class: 'green', |
||||||
|
}, |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 0, |
||||||
|
end: 100, |
||||||
|
class: 'green', |
||||||
|
} |
||||||
|
] |
||||||
|
}; |
||||||
|
expect(true).toBeTruthy(); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should add regions', function (done) { |
||||||
|
var main = chart.internal.main, |
||||||
|
expectedRegions = [ |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 300, |
||||||
|
end: 400, |
||||||
|
class: 'green', |
||||||
|
}, |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 0, |
||||||
|
end: 100, |
||||||
|
class: 'green', |
||||||
|
}, |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 250, |
||||||
|
end: 350, |
||||||
|
class: 'red' |
||||||
|
}, |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 25, |
||||||
|
end: 75, |
||||||
|
class: 'red' |
||||||
|
} |
||||||
|
], |
||||||
|
expectedClasses = [ |
||||||
|
'green', |
||||||
|
'green', |
||||||
|
'red', |
||||||
|
'red', |
||||||
|
], |
||||||
|
regions; |
||||||
|
|
||||||
|
// Call regions API
|
||||||
|
chart.regions(expectedRegions); |
||||||
|
setTimeout(function () { |
||||||
|
regions = main.selectAll('.c3-region'); |
||||||
|
expect(regions.size()).toBe(expectedRegions.length); |
||||||
|
|
||||||
|
regions.each(function (d, i) { |
||||||
|
var region = d3.select(this), |
||||||
|
rect = region.select('rect'), |
||||||
|
y = +rect.attr('y'), |
||||||
|
height = +rect.attr('height'), |
||||||
|
expectedClass = expectedClasses[i], |
||||||
|
expectedStart = Math.round(chart.internal.y(expectedRegions[i].start)), |
||||||
|
expectedEnd = Math.round(chart.internal.y(expectedRegions[i].end)), |
||||||
|
expectedY = expectedEnd, |
||||||
|
expectedHeight = expectedStart - expectedEnd; |
||||||
|
expect(y).toBeCloseTo(expectedY, -1); |
||||||
|
expect(height).toBeCloseTo(expectedHeight, -1); |
||||||
|
expect(region.classed(expectedClass)).toBeTruthy(); |
||||||
|
}); |
||||||
|
}, 500); |
||||||
|
|
||||||
|
setTimeout(function () { |
||||||
|
done(); |
||||||
|
}, 1000); |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
describe('api.region.remove', function () { |
||||||
|
|
||||||
|
it('should update args', function () { |
||||||
|
args = { |
||||||
|
data: { |
||||||
|
columns: [ |
||||||
|
['data1', 30, 200, 100, 400, 150, 250], |
||||||
|
] |
||||||
|
}, |
||||||
|
regions: [ |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 300, |
||||||
|
end: 400, |
||||||
|
class: 'green', |
||||||
|
}, |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 0, |
||||||
|
end: 100, |
||||||
|
class: 'green', |
||||||
|
}, |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 250, |
||||||
|
end: 350, |
||||||
|
class: 'red' |
||||||
|
}, |
||||||
|
] |
||||||
|
}; |
||||||
|
expect(true).toBeTruthy(); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should remove regions', function (done) { |
||||||
|
var main = chart.internal.main, |
||||||
|
expectedRegions = [ |
||||||
|
{ |
||||||
|
axis: 'y', |
||||||
|
start: 250, |
||||||
|
end: 350, |
||||||
|
class: 'red' |
||||||
|
}, |
||||||
|
], |
||||||
|
expectedClasses = ['red'], |
||||||
|
regions; |
||||||
|
|
||||||
|
// Call regions API
|
||||||
|
chart.regions(expectedRegions); |
||||||
|
setTimeout(function () { |
||||||
|
regions = main.selectAll('.c3-region'); |
||||||
|
expect(regions.size()).toBe(expectedRegions.length); |
||||||
|
|
||||||
|
regions.each(function (d, i) { |
||||||
|
var region = d3.select(this), |
||||||
|
rect = region.select('rect'), |
||||||
|
y = +rect.attr('y'), |
||||||
|
height = +rect.attr('height'), |
||||||
|
expectedClass = expectedClasses[i], |
||||||
|
expectedStart = Math.round(chart.internal.y(expectedRegions[i].start)), |
||||||
|
expectedEnd = Math.round(chart.internal.y(expectedRegions[i].end)), |
||||||
|
expectedY = expectedEnd, |
||||||
|
expectedHeight = expectedStart - expectedEnd; |
||||||
|
expect(y).toBeCloseTo(expectedY, -1); |
||||||
|
expect(height).toBeCloseTo(expectedHeight, -1); |
||||||
|
expect(region.classed(expectedClass)).toBeTruthy(); |
||||||
|
}); |
||||||
|
}, 500); |
||||||
|
|
||||||
|
setTimeout(function () { |
||||||
|
done(); |
||||||
|
}, 1000); |
||||||
|
}); |
||||||
|
}); |
||||||
|
|
||||||
|
}); |
Loading…
Reference in new issue