// 注意：这里不能直接require原始的src文件，而要使用build后的文件，因为web worker代码是通过worker-loader内联进来的
import G6 from '../../../dist/g6.min';
import dataset from './data';
import { mathEqual } from './util';

const data = dataset.data;

const div = document.createElement('div');
div.id = 'layout-web-worker';
document.body.appendChild(div);

// jest.setTimeout(10000)

describe('layout using web worker', function () {
  it('change layout', function () {
    //done
    //   const node = data.nodes[0];
    //   const graph = new G6.Graph({
    //     container: div,
    //     layout: {
    //       type: 'circular',
    //       // use web worker to layout
    //       workerEnabled: true,
    //     },
    //     width: 500,
    //     height: 500,
    //     defaultNode: { size: 10 },
    //   });
    //   graph.data(data);
    //   // 下面的 graph.updateLayout又会触发一次afterLayout，为了避免这里的 event handler重复执行，用了 graph.once
    //   graph.once('afterlayout', () => {
    //     expect(mathEqual(node.x, 500)).toEqual(true);
    //     expect(mathEqual(node.y, 250)).toEqual(true);
    //     callback();
    //   });
    //   graph.render();
    //   setTimeout(() => {
    //     callback();
    //   }, 1000);
    //   function callback() {
    //     let count = 0;
    //     let ended = false;
    //     // 只执行一次
    //     graph.once('afterlayout', () => {
    //       expect(node.x).not.toEqual(undefined);
    //       expect(node.y).not.toEqual(undefined);
    //       expect(count >= 1).toEqual(true);
    //       expect(ended).toEqual(true);
    //       graph.destroy();
    //       done();
    //     });
    //     graph.updateLayout({
    //       type: 'force',
    //       onTick() {
    //         count++;
    //         expect(node.x).not.toEqual(undefined);
    //         expect(node.y).not.toEqual(undefined);
    //       },
    //       onLayoutEnd() {
    //         ended = true;
    //       },
    //       // use web worker to layout
    //       workerEnabled: true,
    //     });
    //   }
  });
});
