first commit

This commit is contained in:
2025-01-20 23:58:11 +03:00
commit 1d307908c6
11 changed files with 713 additions and 0 deletions

194
test/index.js Normal file
View File

@@ -0,0 +1,194 @@
const { expect } = require("chai");
const AmazonBookSearch = require("../index");
describe("📦 Amazon Book Search (Turkish) Integration Test", () => {
let bookSearch;
const isbn = "9944824453";
const geminiApiKey = "AIzaSyAY15XJcK1VIxzMRe48dyDEeNPqeqhQt2I";
const timeoutDuration = 30000;
beforeEach(() => {
bookSearch = new AmazonBookSearch("tr");
});
it('Is the ISBN "9944824453" 🔥', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("isbn");
expect(bookDetails.isbn).to.equal("9944824453");
done();
})
.catch(done);
});
it('Is the book title "Dövmeli Adam: İblis Döngüsü 1" 🚀', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("title");
expect(bookDetails.title).to.equal("Dövmeli Adam: İblis Döngüsü 1");
done();
})
.catch(done);
});
it('Checks if the book thumb image is not empty 🌄', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("thumbImage");
expect(bookDetails.thumbImage).to.be.a("string");
done();
})
.catch(done);
});
it('Is the book\'s publication date "1 Temmuz 2016" ⏰', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("date");
expect(bookDetails.date).to.equal("1 Temmuz 2016");
done();
})
.catch(done);
});
it('Is the page count "638" 📋', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("page");
expect(bookDetails.page).to.equal(638);
done();
})
.catch(done);
});
it('Is the publisher "Epsilon Yayınları" 📖', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("publisher");
expect(bookDetails.publisher).to.equal("Epsilon Yayınları");
done();
})
.catch(done);
});
it('Is the Gemini API test working for the book description 🤖', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn, geminiApiKey)
.then((bookDetails) => {
expect(bookDetails).to.have.property("description");
expect(bookDetails.description).to.be.a("string");
done();
})
.catch(done);
});
});
describe("📦 Amazon Book Search (English) Integration Test", () => {
let bookSearch;
const isbn = "0593724283";
const timeoutDuration = 30000;
const geminiApiKey = "AIzaSyAY15XJcK1VIxzMRe48dyDEeNPqeqhQt2I";
beforeEach(() => {
bookSearch = new AmazonBookSearch("en");
});
it('Is the ISBN "0593724283" 🔥', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("isbn");
expect(bookDetails.isbn).to.equal("0593724283");
done();
})
.catch(done);
});
it('Is the book title "The Desert Spear: Book Two of The Demon Cycle" 🚀', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("title");
expect(bookDetails.title).to.equal("The Desert Spear: Book Two of The Demon Cycle");
done();
})
.catch(done);
});
it('Checks if the book thumb image is not empty 🌄', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("thumbImage");
expect(bookDetails.thumbImage).to.be.a("string");
done();
})
.catch(done);
});
it('Is the book\'s publication date "November 7, 2023" ⏰', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("date");
expect(bookDetails.date).to.equal("November 7, 2023");
done();
})
.catch(done);
});
it('Is the page count "864" 📋', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("page");
expect(bookDetails.page).to.equal(864);
done();
})
.catch(done);
});
it('Is the publisher "Del Rey" 📖', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn)
.then((bookDetails) => {
expect(bookDetails).to.have.property("publisher");
expect(bookDetails.publisher).to.equal("Del Rey");
done();
})
.catch(done);
});
it('Is the Gemini API test working for the book description 🤖', function (done) {
this.timeout(timeoutDuration);
bookSearch
.getBookDetails(isbn, geminiApiKey)
.then((bookDetails) => {
expect(bookDetails).to.have.property("description");
expect(bookDetails.description).to.be.a("string");
done();
})
.catch(done);
});
});