fullstackopen-notes/parts/4/blogApp/tests/mostLikes.test.js

55 lines
1.3 KiB
JavaScript
Raw Normal View History

2025-06-05 15:48:19 +02:00
const { test, describe } = require("node:test");
const assert = require("node:assert");
const { mostLikes } = require("../src/utils");
describe("most likes ", () => {
const posts = [
{
_id: "5a422aa71b54a676234d17f8",
title: "Go To Statement Considered Harmful",
author: "Edsger W. Dijkstra",
url: "https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf",
likes: 5,
__v: 0,
},
{
_id: "5a422aa71b54a676234d17f8",
title: "Go To Statement Considered Harmful",
author: "Edsger W. Dijkstra",
url: "https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf",
likes: 2,
__v: 0,
},
{
_id: "123",
title: "Lololo",
author: "John Doe",
url: "https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf",
likes: 1,
__v: 0,
},
];
const emptyArray = [];
const gibberish = "asdaSd123asd";
test("finds top author properly", () => {
assert.deepStrictEqual(mostLikes(posts), {
author: "Edsger W. Dijkstra",
likes: 7,
});
});
test("works fine with empty array", () => {
assert.strictEqual(mostLikes(emptyArray), null);
});
test("fails with gibberish input", () => {
const failedCall = () => {
mostLikes(gibberish);
};
assert.throws(failedCall, Error);
});
});