Skip to content

Commit 5c3ae8c

Browse files
committed
Fixed malformed URL crashing the Java version of the server, tests fixed
1 parent 00bfcc8 commit 5c3ae8c

File tree

6 files changed

+37
-20
lines changed

6 files changed

+37
-20
lines changed

client/src/app/book.service.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export class BookService {
1616
limit = 100;
1717
}
1818

19-
return this.http.get<Book[]>(`${URL}/books?limit=${limit}?skip=${skip}`)
19+
return this.http.get<Book[]>(`${URL}/books?limit=${limit}&skip=${skip}`)
2020
.pipe(
2121
map(books => books.map(book => new BookView(book)))
2222
)

server/src/routes/books.spec.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@ import assert from 'assert';
33
import { users, books, getBaseUrl, cleanDatabase } from '../utils/testing-shared.js';
44
import BookController from '../controllers/books.js';
55

6-
const adminJWT = users.admin.jwt;
7-
const userJWT = users.user1.jwt;
6+
let adminJWT;
7+
let userJWT;
88

99
const bookController = new BookController();
1010

1111
describe('Books API', () => {
1212
const book = books.sample;
1313

1414
before(async () => {
15+
adminJWT = users.admin.jwt;
16+
userJWT = users.user1.jwt;
1517
await cleanDatabase();
1618
});
1719

server/src/routes/borrows.spec.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import { getBaseUrl, users, books } from '../utils/testing-shared.js';
55
import { cleanDatabase } from '../utils/testing-shared.js';
66
import IssueDetailsController from '../controllers/issue-details.js';
77

8-
const adminJWT = users.admin.jwt;
9-
const userJWT = users.user1.jwt;
8+
let adminJWT;
9+
let userJWT;
1010

1111
const issueDetailsController = new IssueDetailsController();
1212

@@ -16,6 +16,9 @@ describe('Borrows API', () => {
1616
const bookWithOneCopy: Book = books.oneCopy;
1717

1818
before(async () => {
19+
adminJWT = users.admin.jwt;
20+
userJWT = users.user1.jwt;
21+
1922
await cleanDatabase();
2023

2124
await request(getBaseUrl())

server/src/routes/reservations.spec.ts

+8-3
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import { getBaseUrl, users, books, cleanDatabase } from '../utils/testing-shared
44
import IssueDetailsController from '../controllers/issue-details.js';
55
import BookController from '../controllers/books.js';
66

7-
const adminJWT = users.admin.jwt;
8-
const userJWT = users.user1.jwt;
9-
const userId = users.user1._id;
7+
8+
let adminJWT;
9+
let userJWT;
10+
let userId;
1011

1112
const issueDetailsController = new IssueDetailsController();
1213
const bookController = new BookController();
@@ -15,6 +16,10 @@ describe('Reservation API', () => {
1516
const book = books.oneCopy;
1617

1718
before(async () => {
19+
adminJWT = users.admin.jwt;
20+
userJWT = users.user1.jwt;
21+
userId = users.user1._id;
22+
1823
await cleanDatabase();
1924
await request(getBaseUrl())
2025
.post('/books')

server/src/routes/reviews.spec.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import assert from 'assert';
33
import { getBaseUrl, users, books, cleanDatabase } from '../utils/testing-shared.js';
44
import ReviewsController from '../controllers/reviews.js';
55

6-
const adminJWT = users.admin.jwt;
7-
const userJWT = users.user1.jwt;
6+
let adminJWT: string;
7+
let userJWT: string;
88

99
const reviewsController = new ReviewsController();
1010

@@ -16,6 +16,9 @@ describe('Reviews API', () => {
1616
};
1717

1818
before(async () => {
19+
adminJWT = users.admin.jwt;
20+
userJWT = users.user1.jwt;
21+
1922
await cleanDatabase();
2023
await request(getBaseUrl())
2124
.post('/books')

server/src/utils/testing-shared.ts

+14-10
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
import { MongoClient, ObjectId } from 'mongodb';
22
import { Book } from '../models/book';
33
import { connectToDatabase, collections } from '../database.js';
4-
5-
const adminJWT = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NGQ0Yzk2NGYwZDA1NmVhNmJmMGYzZDgiLCJuYW1lIjoiT2xkU2Nob29sIEFsbGlnYXRvciIsImlzQWRtaW4iOnRydWUsImlhdCI6MTY5MTY2Njc4OCwiZXhwIjoxNzIzMjAyNzg4fQ.0ycGXmrPBBJC9f1_nhJ7Ypi0C1DjzcZ6NpQVvpDAnJM';
6-
const userJWT = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2NGQ0Yzc1MDViZDQ4MzEwNWM0ODk5MWQiLCJuYW1lIjoiUm93ZHkgSHllbmEiLCJpYXQiOjE2OTE2NjY3ODgsImV4cCI6MTcyMzIwMjc4OH0.YCFLMDhF4R009QT3bOy_H90ocgpKRhIMdbtpOvO-s-c';
4+
import request from 'supertest';
75

86
export const getBaseUrl = () => `http://localhost:${process.env.PORT}`;
97

@@ -32,6 +30,14 @@ export async function initializeTestData() {
3230
users.admin,
3331
users.user1,
3432
]);
33+
34+
const adminResponse = await request(getBaseUrl())
35+
.get(`/users/login/${users.admin.name}`);
36+
users.admin.jwt = adminResponse.body.jwt;
37+
38+
const userResponse = await request(getBaseUrl())
39+
.get(`/users/login/${users.user1.name}`);
40+
users.user1.jwt = userResponse.body.jwt;
3541
}
3642

3743
export async function cleanTestData() {
@@ -47,11 +53,9 @@ export async function cleanTestData() {
4753

4854
export async function cleanDatabase() {
4955
return await Promise.all([
50-
collections?.books?.deleteOne({ _id: books.sample._id }),
51-
collections?.books?.deleteOne({ _id: books.oneCopy._id }),
52-
collections?.books?.deleteOne({ _id: books.notAvailable._id }),
53-
collections.issueDetails?.deleteMany({ _id: new RegExp(`^${users.user1._id}`) }),
54-
collections.reviews?.deleteMany({ name: users.user1.name })
56+
collections?.books?.deleteMany(),
57+
collections.issueDetails?.deleteMany(),
58+
collections.reviews?.deleteMany()
5559
]);
5660
}
5761

@@ -60,12 +64,12 @@ export const users = {
6064
_id: new ObjectId('64d4c964f0d056ea6bf0f3d8'),
6165
name: 'OldSchool Alligator',
6266
isAdmin: true,
63-
jwt: adminJWT,
67+
jwt: ''
6468
},
6569
user1: {
6670
_id: new ObjectId('64d4c7505bd483105c48991d'),
6771
name: 'Rowdy Hyena',
68-
jwt: userJWT,
72+
jwt: ''
6973
}
7074
};
7175

0 commit comments

Comments
 (0)