wkdhkr/dedupper

View on GitHub
src/helpers/TestHelper.js

Summary

Maintainability
A
0 mins
Test Coverage
// @flow
import testAudio from "test-audio";
import type { Logger, Config } from "../types";
import defaultConfig from "../defaultConfig";
import Cli from "../Cli";
import LoggerHelper from "./LoggerHelper";

export default class TestHelper {
  static sampleDir: string = "__tests__/sample/";

  static sampleFile: {
    image: {
      jpg: {
        default: string,
        corrupt: string,
        small: string,
        empty: string,
        notfound: string
      },
      png: {
        default: string,
        anime: string
      },
      bmp: {
        default: string
      }
    },
    video: {
      mkv: {
        default: string,
        corrupt: string,
        empty: string
      }
    },
    audio: {
      mp3: {
        default: string
      }
    },
    misc: {
      txt: {
        default: string
      },
      unknown: {
        default: string
      }
    }
  } = {
    image: {
      jpg: {
        default: `${TestHelper.sampleDir}firefox.jpg`,
        corrupt: `${TestHelper.sampleDir}firefox_corrupt.jpg`,
        small: `${TestHelper.sampleDir}firefox_small.jpg`,
        empty: `${TestHelper.sampleDir}empty.jpg`,
        notfound: `${TestHelper.sampleDir}notfound.jpg`
      },
      png: {
        default: `${TestHelper.sampleDir}firefox.png`,
        anime: `${TestHelper.sampleDir}wikipe-tan.png`
      },
      bmp: {
        default: `${TestHelper.sampleDir}firefox.bmp`
      }
    },
    video: {
      mkv: {
        default: `${TestHelper.sampleDir}SampleVideo_360x240_1mb.mkv`,
        corrupt: `${TestHelper.sampleDir}SampleVideo_360x240_1mb_corrupt.mkv`,
        empty: `${TestHelper.sampleDir}empty.mkv`
      }
    },
    audio: {
      mp3: {
        // default: `${TestHelper.sampleDir}foo.mp3`
        default: testAudio().filter(({ type }) => type === "mp3")[0].path
      }
    },
    misc: {
      txt: {
        default: `${TestHelper.sampleDir}foo.txt`
      },
      unknown: {
        default: `${TestHelper.sampleDir}foo._xyz_`
      }
    }
  };

  static getLogger(clazz: Object): Logger {
    const logger = LoggerHelper.getLogger(clazz);
    logger.level = "off";
    return logger;
  }

  static createDummyConfig(): Config {
    const cli = new Cli();
    const config = {
      ...defaultConfig,
      ...(cli.parseArgs(): any),
      dbBasePath: "",
      report: false,
      getLogger: this.getLogger,
      maxWorkers: 9999 // for max listeners issue
    };
    return config;
  }
}