import c3 from '../src'

window.c3 = c3

window.initDom = function() {
  var div = document.createElement('div')
  div.id = 'chart'
  div.style.width = '640px'
  div.style.height = '480px'
  document.body.appendChild(div)
  document.body.style.margin = '0px'
}

window.setMouseEvent = function(chart, name, x, y, element) {
  var paddingLeft = chart.internal.main.node().transform.baseVal.getItem(0)
      .matrix.e,
    event = document.createEvent('MouseEvents')
  event.initMouseEvent(
    name,
    true,
    true,
    window,
    0,
    0,
    0,
    x + paddingLeft,
    y + 5,
    false,
    false,
    false,
    false,
    0,
    null
  )
  if (element) {
    element.dispatchEvent(event)
  }
}

window.initChart = function(chart, args, done) {
  if (typeof chart === 'undefined') {
    window.initDom()
  }
  if (args) {
    chart = window.c3.generate(args)
    window.d3 = chart.internal.d3
    window.d3
      .select('.jasmine_html-reporter')
      .style('position', 'absolute')
      .style('width', '640px')
      .style('right', 0)

    // when using Karma debug in browser the `window.chart` reference the DOM element
    // instead of the actual chart instance here so let's keep it here
    window.chartInstance = chart
  }

  window.setTimeout(function() {
    done()
  }, 10)

  return chart
}
