@quartic/bokehjs
Version:
Interactive, novel data visualization
70 lines (53 loc) • 2.33 kB
text/coffeescript
{expect} = require "chai"
utils = require "../../utils"
sinon = require 'sinon'
{SidePanel} = utils.require("core/layout/side_panel")
{Document} = utils.require "document"
{ColumnDataSource} = utils.require("models/sources/column_data_source")
{GlyphRenderer} = utils.require("models/renderers/glyph_renderer")
{Legend} = utils.require("models/annotations/legend")
{LegendView} = utils.require("models/annotations/legend")
{LegendItem} = utils.require("models/annotations/legend_item")
HEIGHT = 333
WIDTH = 222
describe "Legend", ->
describe "get_legend_names", ->
it "should return the results of get_labels_from_glyph_label_prop", ->
source = new ColumnDataSource({
data: {
label: ['l1', 'l2', 'l2', 'l1']
},
selection_manager: null,
})
gr = new GlyphRenderer({'data_source': source})
item_1 = new LegendItem({'label': {'field': 'label'}, 'renderers': [gr]})
item_2 = new LegendItem({'label': {'value': 'l3'}})
legend = new Legend({
items: [item_1, item_2]
})
labels = legend.get_legend_names()
expect(labels).to.be.deep.equal ['l1', 'l2', 'l3']
describe "LegendView", ->
afterEach ->
LegendView.prototype.compute_legend_bbox.restore()
beforeEach ->
= new Legend()
.attach_document(new Document())
stub = sinon.stub(LegendView.prototype, 'compute_legend_bbox')
stub.returns({x: 0, y: 0, width: WIDTH, height: HEIGHT})
it "_get_size should return legend_height if side is above", ->
.add_panel('above')
legend_view = new .default_view({ model: })
expect(legend_view._get_size()).to.be.equal HEIGHT
it "_get_size should return legend_height if side is below", ->
.add_panel('below')
legend_view = new .default_view({ model: })
expect(legend_view._get_size()).to.be.equal HEIGHT
it "_get_size should return legend_height if side is left", ->
.add_panel('left')
legend_view = new .default_view({ model: })
expect(legend_view._get_size()).to.be.equal WIDTH
it "_get_size should return legend_height if side is right", ->
.add_panel('right')
legend_view = new .default_view({ model: })
expect(legend_view._get_size()).to.be.equal WIDTH