import { moduleForWidget, widgetTest } from 'helpers/widget-test';
moduleForWidget('discourse-poll-standard-results');

const template = `{{mount-widget
                    widget="discourse-poll-standard-results"
                    args=(hash poll=poll isMultiple=isMultiple)}}`;

widgetTest('options in descending order', {
  template,

  beforeEach() {
    this.set('poll', Ember.Object.create({
      options: [{ votes: 5 }, { votes: 4 }],
      voters: 9
    }));
  },

  test(assert) {
    assert.equal(this.$('.option .percentage:eq(0)').text(), '56%');
    assert.equal(this.$('.option .percentage:eq(1)').text(), '44%');
  }
});

widgetTest('options in ascending order', {
  template,

  beforeEach() {
    this.set('poll', Ember.Object.create({
      options: [{ votes: 4 }, { votes: 5 }],
      voters: 9
    }));
  },

  test(assert) {
    assert.equal(this.$('.option .percentage:eq(0)').text(), '56%');
    assert.equal(this.$('.option .percentage:eq(1)').text(), '44%');
  }
});

widgetTest('multiple options in descending order', {
  template,

  beforeEach() {
    this.set('isMultiple', true);
    this.set('poll', Ember.Object.create({
      type: 'multiple',
      options: [
        { votes: 5, html: 'a' },
        { votes: 2, html: 'b' },
        { votes: 4, html: 'c' },
        { votes: 1, html: 'b' },
        { votes: 1, html: 'a' }
      ],
      voters: 12
    }));
  },

  test(assert) {
    assert.equal(this.$('.option .percentage:eq(0)').text(), '41%');
    assert.equal(this.$('.option .percentage:eq(1)').text(), '33%');
    assert.equal(this.$('.option .percentage:eq(2)').text(), '16%');
    assert.equal(this.$('.option .percentage:eq(3)').text(), '8%');
    assert.equal(this.$('.option span:nth-child(2):eq(3)').text(), 'a');
    assert.equal(this.$('.option .percentage:eq(4)').text(), '8%');
    assert.equal(this.$('.option span:nth-child(2):eq(4)').text(), 'b');
  }
});