feat(shopping): mağazalar, zahmet skoru ve ürünler (marka/paket, dönüşüm, görseller)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { autoConvertible, BARCODE_PATTERN, describePackage, packageInTypeUnit } from "./products";
|
||||
|
||||
const p = (
|
||||
packageQuantity: number,
|
||||
packageUnit: string,
|
||||
typeUnit: string,
|
||||
typeQuantity: number | null = null,
|
||||
) => ({
|
||||
packageQuantity,
|
||||
packageUnit,
|
||||
typeUnit,
|
||||
typeQuantity,
|
||||
});
|
||||
|
||||
describe("paketin ürün tipi birimindeki karşılığı", () => {
|
||||
it("aynı birim ve aynı boyut kendiliğinden", () => {
|
||||
expect(packageInTypeUnit(p(5_000, "kg", "kg"))).toBe(5_000);
|
||||
expect(packageInTypeUnit(p(500_000, "g", "kg"))).toBe(500);
|
||||
expect(packageInTypeUnit(p(1_500, "lt", "ml"))).toBe(1_500_000);
|
||||
expect(packageInTypeUnit(p(40_000, "tablet", "tablet"))).toBe(40_000);
|
||||
expect(autoConvertible("g", "kg")).toBe(true);
|
||||
expect(autoConvertible("kg", "lt")).toBe(false);
|
||||
expect(autoConvertible("paket", "adet")).toBe(false);
|
||||
});
|
||||
|
||||
it("farklı boyut veya özel birimde elle dönüşüm, yoksa null", () => {
|
||||
expect(packageInTypeUnit(p(5_000, "kg", "yıkama", 50_000))).toBe(50_000);
|
||||
expect(packageInTypeUnit(p(1_000, "paket", "tablet", 40_000))).toBe(40_000);
|
||||
expect(packageInTypeUnit(p(5_000, "kg", "yıkama"))).toBeNull();
|
||||
// Kendiliğinden çevrilebiliyorsa elle girilen yok sayılır.
|
||||
expect(packageInTypeUnit(p(500_000, "g", "kg", 999))).toBe(500);
|
||||
});
|
||||
|
||||
it("paket açıklaması ve barkod", () => {
|
||||
expect(describePackage(p(5_000, "kg", "yıkama", 50_000))).toBe("5 kg · 50 yıkama");
|
||||
expect(describePackage(p(500_000, "g", "kg"))).toBe("500 g · 0,5 kg");
|
||||
expect(describePackage(p(2_000, "kg", "kg"))).toBe("2 kg");
|
||||
expect(BARCODE_PATTERN.test("8690000000001")).toBe(true);
|
||||
expect(BARCODE_PATTERN.test("123")).toBe(false);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user