Test Funtions for filterById,filterByQuery,createNewCharacter,ValidateCharacter
const fs = require("fs");
const {
filterByQuery,
findById,
createNewAnimal,
validateAnimal,
} = require("../lib/animals.js");
const { animals } = require("../data/animals");
test("creates an animal object", () => {
const animal = createNewAnimal(
{ name: "Darlene", id: "jhgdja3ng2" },
animals
);
expect(animal.name).toBe("Darlene");
expect(animal.id).toBe("jhgdja3ng2");
});
test("filters by query", () => {
const startingAnimals = [
{
id: "3",
name: "Erica",
species: "gorilla",
diet: "omnivore",
personalityTraits: ["quirky", "rash"],
},
{
id: "4",
name: "Noel",
species: "bear",
diet: "carnivore",
personalityTraits: ["impish", "sassy", "brave"],
},
];
const updatedAnimals = filterByQuery({ species: "gorilla" }, startingAnimals);
expect(updatedAnimals.length).toEqual(1);
});
test("finds by id", () => {
const startingAnimals = [
{
id: "3",
name: "Erica",
species: "gorilla",
diet: "omnivore",
personalityTraits: ["quirky", "rash"],
},
{
id: "4",
name: "Noel",
species: "bear",
diet: "carnivore",
personalityTraits: ["impish", "sassy", "brave"],
},
];
const result = findById("3", startingAnimals);
expect(result.name).toBe("Erica");
});
test("validates personality traits", () => {
const animal = {
id: "3",
name: "Erica",
species: "gorilla",
diet: "omnivore",
personalityTraits: ["quirky", "rash"],
};
const invalidAnimal = {
id: "3",
name: "Erica",
species: "gorilla",
diet: "omnivore",
};
const result = validateAnimal(animal);
const result2 = validateAnimal(invalidAnimal);
expect(result).toBe(true);
expect(result2).toBe(false);
});