Код: Выделить всё
file:///C:/Users/Edwar/WebstormProjects/fullstackopen/Part4/bloglist/tests/blog_api.test.js:1
const { test, describe} = require('node:test')
^
ReferenceError: require is not defined in ES module scope, you can use import instead
at file:///C:/Users/Edwar/WebstormProjects/fullstackopen/Part4/bloglist/tests/blog_api.test.js:1:27
at ModuleJob.run (node:internal/modules/esm/module_job:274:25)
at async onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:644:26)
at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:117:5)
Node.js v22.16.0
✖ tests\blog_api.test.js (47.9562ms)
✔ dummy function (0.8653ms)
▶ total likes
✔ total likes (0.1556ms)
✔ total likes (0.3705ms)
▶ favorite blog
✔ most liked (0.4298ms)
✔ favorite blog (1.1711ms)
▶ most blogs
✔ best author (0.5545ms)
✔ most blogs (0.7417ms)
▶ most likes
✔ most liked author (0.3022ms)
✔ most likes (0.5679ms)
ℹ tests 6
ℹ suites 4
ℹ pass 5
ℹ fail 1
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 83.8575
✖ failing tests:
test at tests\blog_api.test.js:1:1
✖ tests\blog_api.test.js (47.9562ms)
'test failed'
< /code>
[структура проекта] [1] < /p>
{
"name": "bloglist",
"version": "1.0.0",
"main": "app.js",
"scripts": {
"start": "cross-env NODE_ENV=production node index.js",
"dev": "cross-env NODE_ENV=development node --watch index.js",
"test": "cross-env NODE_ENV=test node --test"
},
"author": "",
"license": "ISC",
"description": "",
"dependencies": {
"cors": "^2.8.5",
"cross-env": "^10.0.0",
"dotenv": "^17.2.2",
"express": "^5.1.0",
"mongoose": "^8.18.0"
},
"devDependencies": {
"nodemon": "^3.1.10",
"supertest": "^7.1.4"
}
}
< /code>
test_helper.test.jsКод: Выделить всё
const {test, describe} = require('node:test')
const assert = require('node:assert')
const listHelper = require('../utils/list_helper')
test('dummy function', () => {
const blogs = []
const result = listHelper.dummy()
assert.strictEqual(result, 1)
})
describe('total likes', () => {
test('total likes', () => {
const likes = listHelper.totalLikes(listHelper.initialBlogs)
assert.strictEqual(likes, 12)
})
})
describe('favorite blog', () => {
test('most liked', () => {
const favorite = listHelper.favoriteBlog(listHelper.initialBlogs)
assert.deepStrictEqual(favorite, listHelper.initialBlogs[0])
})
})
describe('most blogs', () => {
test('best author', () => {
const topAuthor = listHelper.mostBlogs(listHelper.initialBlogs)
assert.deepStrictEqual(topAuthor, {author: "Michael Chan", blogs: 1})
})
})
describe('most likes', () => {
test('most liked author', () => {
const bestAuthor = listHelper.mostLikes(listHelper.initialBlogs)
assert.deepStrictEqual(bestAuthor, { author: 'Michael Chan', likes: 7 })
})
}
< /code>
blog_api.test.jsКод: Выделить всё
const { test, describe} = require('node:test')
const supertest = require('supertest')
const mongoose = require('mongoose')
const app = require('../app')
describe('Blog api', () => {
test('GET blogs', async () => {
const response = await supertest(app)
.get('/api/blogs')
.expect(200)
.expect('Content-Type', /application\/json/)
console.log(response.body)
})
})
await mongoose.connection.close()
< /code>
app.jsКод: Выделить всё
const express = require('express')
const mongoose = require('mongoose')
const {MONGODB_URI} = require("./utils/config");
const logger = require("./utils/logger");
const middleware = require("./utils/middleware");
const blogsRouter = require("./controllers/blogs");
const app = express();
logger.info("Connecting to the database...", MONGODB_URI)
mongoose.connect(MONGODB_URI)
.then(() => {
console.log("Connected to the database...")
}).catch((error) => {
logger.error("An error occurred with the database, ", error);
})
app.use(express.json());
app.use(express.static('dist'));
app.use(middleware.requestLogger);
app.use('/api/blogs', blogsRouter);
app.use(middleware.unknownEndpoint);
app.use(middleware.errorHandler);
module.exports = app;
< /code>
When I try to add beforeAllПодробнее здесь: https://stackoverflow.com/questions/797 ... pi-backend