ไม่มีแถวที่ตรงกับตัวกรอง
Validator
ตรวจได้ทีละหลายค่า คล้ายเว็บทดสอบ regex วางค่าบรรทัดละ 1 ค่า ทุกบรรทัดจะมีสีบอกว่าผ่านหรือไม่ผ่านพร้อมเหตุผล คลิกบรรทัดเพื่อดูวิธีคำนวณ
รูปแบบ
ค่าที่จะตรวจ บรรทัดละ 1 ค่า
Docs
Install library แล้วเรียกใช้ใน test script ได้เลย ได้ data แบบเดียวกับหน้า Generator รองรับ Playwright, Cypress, Jest และ Vitest
Installation
npm install thai-test-data
Usage with Playwright
ใส่ seed เพื่อให้ได้ data ชุดเดิมทุกครั้งที่ run เวลา test fail จะ reproduce และ debug ได้ง่าย
import { test, expect } from "@playwright/test";
import { createThaiData } from "thai-test-data";
const td = createThaiData({ seed: 42 });
test("สมัครสมาชิกด้วยข้อมูลที่ถูกต้อง", async ({ page }) => {
const user = td.person();
await page.goto("/register");
await page.fill("#citizenId", user.citizenId);
await page.fill("#phone", user.phone);
await page.fill("#address", user.address.fullAddress);
await page.click("button[type=submit]");
await expect(page.getByText("สมัครสำเร็จ")).toBeVisible();
});
test("ปฏิเสธเลขบัตรที่ผิด", async ({ page }) => {
await page.goto("/register");
await page.fill("#citizenId", td.invalidCitizenId());
await page.click("button[type=submit]");
await expect(page.getByText("เลขบัตรประชาชนไม่ถูกต้อง")).toBeVisible();
});
API Reference
| td.citizenId(firstDigit?) | เลขบัตรประชาชนที่ valid กำหนด first digit 1-8 ได้ |
| td.invalidCitizenId(kind?) | เลขบัตรที่ผิด สำหรับ negative test: "checksum" | "short" | "long" | "letters" |
| td.juristicId() | เลขผู้เสียภาษีนิติบุคคล |
| td.invalidJuristicId(kind?) | เลขนิติบุคคลที่ผิด ใช้ kind แบบเดียวกัน |
| td.phone(prefixes?) | เบอร์มือถือ 10 หลัก จำกัดเลขขึ้นต้นได้ เช่น ["08"] |
| td.invalidPhone(kind?) | เบอร์ที่ผิด: "prefix" | "short" | "long" | "letters" |
| td.name("male" | "female") | ชื่อ-นามสกุลไทยและอังกฤษ |
| td.address(options?) | ที่อยู่ครบ 77 จังหวัด 7,436 ตำบล รหัสไปรษณีย์ตรงกัน กรองได้ เช่น { province: "เชียงใหม่" } หรือ { bangkok: false } |
| td.postalCode(options?) | รหัสไปรษณีย์ที่มีใช้จริง filter จังหวัดได้เหมือน address() |
| td.invalidPostalCode(kind?) | รหัสไปรษณีย์ที่ผิด: "unknown" | "short" | "long" | "letters" |
| lookupPostalCode(code) | ดูว่ารหัสนี้เป็นของตำบล อำเภอ จังหวัดไหน |
| td.birthDate(min, max) | วันเกิดตามช่วงอายุ |
| td.person() | ข้อมูลบุคคลครบชุด |
| td.many(n, fn) | generate หลายรายการ คืนเป็น array |
| td.unique(n, fn) | เหมือน many แต่ไม่มีค่าซ้ำ เช่น td.unique(30000, td.phone) |
| isValidThaiId(value) | validate เลข 13 หลัก |
| isValidPostalCode(code) | เช็กว่ารหัสไปรษณีย์มีใช้จริง |
Report
แจ้ง bug หรือขอ feature ใหม่ กรอกแล้วกด Open issue ระบบจะเปิด GitHub พร้อมกรอกข้อมูลไว้ให้ (ต้องมี GitHub account)