/* eslint-disable no-unused-expressions */
// Pre-run
import chai from 'chai';
import { ipcMain } from 'electron';

// Actual Test Imports
import EmitterClass from '../../build/main/utils/Emitter';
import MockIPCWindow from './testdata/moch_ipc_window';

chai.should();

const originalIPCMainOn = ipcMain.on.bind(ipcMain);
const originalIPCMainOnce = ipcMain.once.bind(ipcMain);

describe('Emitter (main)', () => {
  let Emitter;
  let testWindow1;
  let testWindow2;
  let IPCHooks;
  let IPCHooksOnce;

  beforeEach(() => {
    // Mock IPC Main
    IPCHooks = {};
    IPCHooksOnce = {};
    ipcMain.on = (eventName, fn) => {
      IPCHooks[eventName] = IPCHooks[eventName] || [];
      IPCHooks[eventName].push(fn);
      originalIPCMainOn(eventName, fn);
    };
    ipcMain.once = (eventName, fn) => {