Реализуйте функционал для работы с книгами в библиотеке:
создание книги(добавление новой книги в библиотеку)
Выдача книги читателю
Получение книги от читателя
Получение у кого книга сейчас находится
Необходимо создать контруктор объектов Book, который будет создавать объекты со следующими полями:
name - имя книги
author - имя автора
year - год книги
reader - текущий читатель книги(у кого она на руках) - если она сейчас свободна - должно быть равно null
Необходимо реализовать на прототипе следующие методы работы с книгой:
isAvailable() // true/false - доступна ли книга для выдачи или она у кого-то на руках
takeBook(readerName) - должен выдавать книгу читателю, если она доступна для выдачи и записывать его имя в reader, возвращает true, если выдача книги возможна и она произведена, false, если книга уже выдана
returnBook() - регистрирует возврат книги, устанавливает reader в null, возвращает true, если книга была на руках, false если книга итак в библиотеке
changeBookName(newBookName) - изменяет название книги на newBookName, возвращает true/false, в зависимости от результата
changeAuthorName(newAuthorName) - изменяет имя автора на newAuthorName, возвращает true/false в зависимости от результата
getCurrentReader() - возвращает имя текущего читателя или null, если книга доступна для выдачи
function Book(name, author, year) {
this.name = name
this.author = author
this.year = year
this.reader = null
}
Book.prototype.isAvailable = function () {
return !this.reader
}
Book.prototype.takeBook = function (readerName) {
if (this.reader) {
return false
} else {
this.reader = readerName
return true
}
}
Book.prototype.returnBook = function () {
if (!this.reader) {
this.reader = null
return false
} else {
return true
}
}
Book.prototype.changeBookName = function (newBookName) {
if (this.reader)
return false;
this.name = newBookName;
return true;
}
Book.prototype.changeAuthorName = function (newAuthorName) {
if (this.reader)
return false;
this.author = newAuthorName;
return true;
}
Book.prototype.getCurrentReader = function () {
return this.reader
}
Ваш ответ не прошел тест!
FAIL test.js
book
✓ должен создавать экземпляр Book без функций в нем (6ms)
✓ должен иметь прототип со всеми функциями (4ms)
✕ должен показывать актуальное состояние книги (7ms)
✕ должен выдавать значение текущего читателя (4ms)
✓ должен изменять имя автора (10ms)
✓ должен изменять имя книги (2ms)
● book › должен показывать актуальное состояние книги
expect(received).toBe(expected) // Object.is equality
Expected: false
Received: true
> 93 | expect(book1.returnBook()).toBe(true);
| ^
Привет, не могу понять, почему не проходят два теста, подскажите, пожалуйста