crnc
Version:
currency conversion and functionality for the web
60 lines • 1.8 kB
JavaScript
import { expect } from "cynic";
import { exchangeRates } from "./testing-tools.js";
import { convertCurrency } from "./convert-currency.js";
export default {
"convert values": async () => {
expect(convertCurrency({
value: 100,
inputCurrency: "GBP",
outputCurrency: "USD",
exchangeRates,
})).equals(200);
expect(convertCurrency({
value: 200,
inputCurrency: "USD",
outputCurrency: "GBP",
exchangeRates,
})).equals(100);
expect(convertCurrency({
value: 60,
inputCurrency: "CAD",
outputCurrency: "USD",
exchangeRates,
})).equals(40);
},
"survives same input/output currencies": async () => {
expect(convertCurrency({
value: 123,
inputCurrency: "CAD",
outputCurrency: "CAD",
exchangeRates,
})).equals(123);
},
"throws on invalid currency": async () => {
expect(() => convertCurrency({
value: 100,
inputCurrency: "xyz",
outputCurrency: "USD",
exchangeRates,
})).throws();
expect(() => convertCurrency({
value: 100,
inputCurrency: null,
outputCurrency: "USD",
exchangeRates,
})).throws();
expect(() => convertCurrency({
value: 100,
inputCurrency: "",
outputCurrency: "USD",
exchangeRates,
})).throws();
expect(() => convertCurrency({
value: 100,
inputCurrency: "GBP",
outputCurrency: "xyz",
exchangeRates,
})).throws();
},
};
//# sourceMappingURL=convert-currency.test.js.map