wkdhkr/dedupper

View on GitHub
__tests__/services/deepLearning/OpenNsfwService.test.js

Summary

Maintainability
A
0 mins
Test Coverage
/** @flow */

import TestHelper from "../../../src/helpers/TestHelper";

describe("OpenNsfwService", () => {
  let config;

  beforeEach(() => {
    jest.resetModules();
    config = TestHelper.createDummyConfig();
  });

  const loadSubject = async () =>
    import("../../../src/services/deepLearning/OpenNsfwService");

  describe("isAcceptable", () => {
    it("true", async () => {
      jest.mock("axios", () => ({
        post: () => Promise.resolve({ data: { nsfw: 0.6, sfw: 0.4 } })
      }));
      config.deepLearningConfig.nsfwType = "nsfw";
      config.deepLearningConfig.nsfwMode = "allow";
      config.deepLearningConfig.nsfwThreshold = 0.5;
      const { default: OpenNsfwService } = await loadSubject();
      const subject = new OpenNsfwService(config);
      expect(
        await subject.isAcceptable(TestHelper.sampleFile.image.jpg.default)
      ).toBeTruthy();
    });

    it("false", async () => {
      jest.mock("axios", () => ({
        post: () => Promise.resolve({ data: { nsfw: 0.6, sfw: 0.4 } })
      }));
      config.deepLearningConfig.nsfwType = "nsfw";
      config.deepLearningConfig.nsfwMode = "allow";
      config.deepLearningConfig.nsfwThreshold = 0.7;
      const { default: OpenNsfwService } = await loadSubject();
      const subject = new OpenNsfwService(config);
      expect(
        await subject.isAcceptable(TestHelper.sampleFile.image.jpg.default)
      ).toBeFalsy();
    });
  });
});