import './index';
import { assert } from 'chai';
import { colorPickerRegex, extractControlNames, sliderRegex } from './wasm-fiddle-sk';

describe('wasm-fiddle', () => {
  describe('extractControlNames', () => {
    it('finds all sliders across multiple lines', () => {
      const code = `
#slider1:Foo
#slider2:Bar
      `;
      assert.deepEqual([undefined, 'Foo', 'Bar'], extractControlNames(sliderRegex, code));
    });

    it('finds all sliders on the same line', () => {
      const code = '  #slider1:Foo #slider2:Bar    ';
      assert.deepEqual([undefined, 'Foo', 'Bar'], extractControlNames(sliderRegex, code));
    });

    it('does not crash on empty string', () => {
      const code = '';
      assert.deepEqual([], extractControlNames(sliderRegex, code));
    });

    it('finds all sliders in comments.', () => {
      const code = `  // Comment
  // #slider0:strokeWidth #color0:dashColor
  // #slider1:Bar #color1:Foo
    `;
      assert.deepEqual(['strokeWidth', 'Bar'], extractControlNames(sliderRegex, code), 'sliders');
      assert.deepEqual(
        ['dashColor', 'Foo'],
        extractControlNames(colorPickerRegex, code),
        'color pickers'
      );
    });
  });
});
