import UserModel from "../UserModel";

import data from "../__mock__/data.json";
import contributions from "../__mock__/contributions.json";

describe("userModel", () => {
  it("is applicable for user data", () => {
    expect(
      UserModel.isApplicableModel({
        contributions: { resourcetype: "userdata" },
      }),
    ).toBe(true);

    expect(
      UserModel.isApplicableModel({
        contributions: { resourcetype: "application" },
      }),
    ).toBe(false);
  });

  it("should be able to create an empty UserModel object", () => {
    const user = new UserModel({});

    expect(user).toBeInstanceOf(UserModel);
    expect(user.type).toBe("User");
    expect(user.username).toBe("Guest");
    expect(user.fullname).toBe("Guest");
    expect(user.label).toBeUndefined();
  });

  it("holds user information", () => {
    const user = new UserModel({
      data: data.userdata,
      contributions: contributions.userdata,
    });

    expect(user).toBeInstanceOf(UserModel);
    expect(user.type).toBe("User");
    expect(user.username).toBe("auser");
    expect(user.fullname).toBe("A user");
    expect(user.label).toBe("User data");
  });
});
