как заставить мой тест возвращать ошибку и метод просмотра

#javascript #node.js #oop

#javascript #node.js #ооп

Вопрос:

Я разрабатываю систему для изучения OOJS. И я хочу просмотреть информацию о книге, я не смог заставить свой тест работать… Я разбил эту часть.

Мой тест должен проверить, совпадает ли название книги с тем, которое «зарегистрировано», и вызвать метод для просмотра класса Book.

учебник

 export default class Book{
    constructor(title, summary){
        this.title = title;
        this.summary = summary;
    }
    set title(title){
        if (isEmpty(title) || isNull(title))
        throw new Error(`can't be empty`);
      this._title = title;
    }
    set summary(summary){
        if(isEmpty(summary) || isNull(summary))
            throw new Error(`can't be empty`);
        this._summary = summary;
    }
    get title(){
        return this._title;
    }

    toView(){
        return `
            Title: ${this._title}n
            Summary: ${this._summary}n`
    }
}
}
  

учебная книга dao

 import Book from "../models/Book.js";
import {isEmpty, maxLength} from '../validate.js'
import ValidateErrors from "../validateErrors.js";

export default class BookDAO {
  constructor() {
    this._list = [];
  }
  hasTitle(book) {
    return this._list.some((b) => b.title === book.title);
  }

  validationBook(book) {
    const validate = new ValidateErrors();

    if (!(book instanceof Book)) {
      throw new Error(`The object is not a book`);
    }
    if (this.hasTitle(book)) {
      validate.addError(
        new Error(`There is already a book registration with that title!`)
      );
    }
    }
    return validate;
  }

  add(book) {
    const validatedBook = this.validationBook(book);
    if (validatedBook.hasErrors()) {
      throw validatedBook.errors;
    }
    this._list.push(book);
  }

  render(title){
    const book = this.hasTitle(title);

    if(!book){
      throw new Error ("was not found");
  }
    return book.toView();
}
}
  

книга тестов класса

 import BookDAO from '../dao/Book.js'
import Book from '../models/Book.js'

try{
    const bookDAO = new BookDAO();
    const book = new Book("Design UX/UI","Summary");
      bookDAO.add(book);
      bookDAO.render("Design");

      console.log({book});    
} catch(err){  
    console.log(err)   
}
  

мой тест не возвращает ошибку поиска незарегистрированной книги

спасибо за любую помощь!