JSFiddle - React, Tailwind, and code Playground
by Fagner Brack
HTML
<script src="https://code.jquery.com/qunit/qunit-2.8.0.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.8.0.css">
<div id="qunit"></div>
<div id="qunit-fixture"></div>
JavaScript
class PurchaseBooksCommand {
constructor(userId, quantity) {
this.internalQuantity = quantity;
this.internalUserId = userId;
}
clientId() {
return this.internalUserId;
}
quantity() {
return this.internalQuantity;
}
}
class BookStoreCommandHandler {
handle(command) {
// Handle the command
const transaction = new BookTransaction(
command.userId(),
command.quantity()
);
return transaction.id();
}
}
class BookTransaction {
id() {
return 'any_generated_transaction_id';
}
}
QUnit.test('Command to purchase books', (assert) => {
const quantity = 5;
const userId = '123';
const command = new PurchaseBooksCommand(userId, quantity);
assert.strictEqual(command.userId(), '123');
assert.strictEqual(command.quantity(), 5);
});
QUnit.test('Handling of purchase books command', (assert) => {
const command = new PurchaseBooksCommand('123' /*userId*/, 5 /*quantity*/);
const transactionId = new BookStoreCommandHandler().handle(command);
assert.ok(typeof transactionId === 'string');
});