refactor(ui,docs): Job terimini Test olarak güncelle

UI ve dokümantasyon boyunca "Job" terimleri "Test" olarak değiştirildi.
Bu değişiklik, uygulamanın terminolojisini tutarlı hale getirmek
ve kullanıcı arayüzünde daha doğru bir isimlendirme sağlamak için
yapıldı. Tüm etiketler, başlıklar, bildirimler ve dokümantasyon
güncellendi.
This commit is contained in:
2026-01-18 16:42:36 +03:00
parent dc8d0eef1b
commit 0961751f4d
5 changed files with 40 additions and 40 deletions

View File

@@ -22,7 +22,7 @@ export function DashboardLayout() {
const navigation = useMemo(
() => [
{ label: "Home", to: "/home", icon: faHouse },
{ label: "Jobs", to: "/jobs", icon: faFlaskVial },
{ label: "Tests", to: "/jobs", icon: faFlaskVial },
{ label: "Deployments", to: "/deployments", icon: faRocket },
{ label: "Settings", to: "/settings", icon: faGear }
],

View File

@@ -54,7 +54,7 @@ export function HomePage() {
recentRuns: [],
totals: { successRate: 0, totalRuns: 0 }
});
setError("Job metrikleri alınamadı");
setError("Test metrikleri alınamadı");
}
if (deployResult.status === "fulfilled") {

View File

@@ -79,7 +79,7 @@ export function JobDetailPage() {
checkUnit: data.job.checkUnit
});
})
.catch(() => setError("Job bulunamadı"))
.catch(() => setError("Test bulunamadı"))
.finally(() => setLoading(false));
}, [id]);
@@ -174,14 +174,14 @@ export function JobDetailPage() {
const handleDelete = async () => {
if (!job?._id) return;
const ok = window.confirm("Bu job'ı silmek istediğinize emin misiniz?");
const ok = window.confirm("Bu testi silmek istediğinize emin misiniz?");
if (!ok) return;
try {
await deleteJob(job._id);
toast.success("Job silindi");
toast.success("Test silindi");
navigate("/jobs", { replace: true });
} catch (err) {
toast.error("Job silinemedi");
toast.error("Test silinemedi");
}
};
@@ -203,7 +203,7 @@ export function JobDetailPage() {
return;
}
await updateJob(job._id, payload);
toast.success("Job güncellendi");
toast.success("Test güncellendi");
setJob((prev) =>
prev
? {
@@ -281,8 +281,8 @@ export function JobDetailPage() {
className="h-10 w-10 transition hover:bg-emerald-100"
onClick={handleEdit}
disabled={!job}
title="Job'ı düzenle"
aria-label="Job'ı düzenle"
title="Testi düzenle"
aria-label="Testi düzenle"
>
<FontAwesomeIcon icon={faPen} className="h-4 w-4 text-foreground" />
</Button>
@@ -292,8 +292,8 @@ export function JobDetailPage() {
className="h-10 w-10 transition hover:bg-red-100"
onClick={handleDelete}
disabled={!job}
title="Job'ı sil"
aria-label="Job'ı sil"
title="Testi sil"
aria-label="Testi sil"
>
<FontAwesomeIcon icon={faTrash} className="h-4 w-4 text-foreground" />
</Button>
@@ -317,7 +317,7 @@ export function JobDetailPage() {
</div>
)}
<div className="flex w-full items-center gap-2">
<CardTitle>{job?.name || "Job Detayı"}</CardTitle>
<CardTitle>{job?.name || "Test Detayı"}</CardTitle>
<span className="inline-flex items-center gap-2 rounded-full border border-border bg-muted/50 px-3 py-1 text-xs font-semibold text-foreground">
<FontAwesomeIcon icon={faRepeat} className="h-3.5 w-3.5 text-foreground/80" />
{runCount} test
@@ -368,7 +368,7 @@ export function JobDetailPage() {
<div className="w-full max-w-lg rounded-lg border border-border bg-card card-shadow">
<div className="flex items-center justify-between border-b border-border px-5 py-4">
<div className="space-y-1">
<div className="text-lg font-semibold text-foreground">Job Güncelle</div>
<div className="text-lg font-semibold text-foreground">Test Güncelle</div>
<div className="text-sm text-muted-foreground">Değişiklikler kaydedildiğinde test yeniden tetiklenecek.</div>
</div>
<Button variant="ghost" size="icon" onClick={() => setEditOpen(false)}>
@@ -377,7 +377,7 @@ export function JobDetailPage() {
</div>
<div className="space-y-4 px-5 py-4">
<div className="space-y-2">
<Label htmlFor="name">Job Name</Label>
<Label htmlFor="name">Test Name</Label>
<Input
id="name"
value={form.name}

View File

@@ -58,7 +58,7 @@ export function JobsPage() {
const data = await fetchJobs();
setJobs(data);
} catch (err) {
toast.error("Jobs alınamadı");
toast.error("Testler alınamadı");
} finally {
setLoading(false);
}
@@ -145,11 +145,11 @@ export function JobsPage() {
j._id === updated._id ? { ...updated, runCount: j.runCount ?? updated.runCount } : j
)
);
toast.success("Job güncellendi");
toast.success("Test güncellendi");
} else {
const created = await createJob(payload);
setJobs((prev) => [{ ...created, runCount: created.runCount ?? 0 }, ...prev]);
toast.success("Job oluşturuldu");
toast.success("Test oluşturuldu");
}
setModalOpen(false);
} catch (err) {
@@ -163,9 +163,9 @@ export function JobsPage() {
setRunningId(id);
try {
await runJob(id);
toast.success("Job çalıştırılıyor");
toast.success("Test çalıştırılıyor");
} catch {
toast.error("Job çalıştırılamadı");
toast.error("Test çalıştırılamadı");
} finally {
setRunningId(null);
}
@@ -185,18 +185,18 @@ export function JobsPage() {
<>
<div className="flex items-center justify-between gap-4">
<div>
<h2 className="text-xl font-semibold text-foreground">Jobs</h2>
<h2 className="text-xl font-semibold text-foreground">Tests</h2>
</div>
<Button onClick={handleOpenNew} className="gap-2">
<FontAwesomeIcon icon={faPlus} className="h-4 w-4" />
New Job
New Test
</Button>
</div>
<div className="grid gap-4">
{loading && (
<div className="rounded-md border border-border bg-muted/30 px-4 py-3 text-sm text-muted-foreground">
Jobs yükleniyor...
Testler yükleniyor...
</div>
)}
{!loading && jobs.length === 0 && (
@@ -280,9 +280,9 @@ export function JobsPage() {
<div className="w-full max-w-lg rounded-lg border border-border bg-card card-shadow">
<div className="flex items-center justify-between border-b border-border px-5 py-4">
<div className="space-y-1">
<div className="text-lg font-semibold text-foreground">{isEdit ? "Job Güncelle" : "Yeni Job"}</div>
<div className="text-lg font-semibold text-foreground">{isEdit ? "Test Güncelle" : "Yeni Test"}</div>
<div className="text-sm text-muted-foreground">
Detayları girin, Jobs listesi canlı olarak güncellenecek.
Detayları girin, Tests listesi canlı olarak güncellenecek.
</div>
</div>
<Button variant="ghost" size="icon" onClick={handleClose}>
@@ -291,7 +291,7 @@ export function JobsPage() {
</div>
<div className="space-y-4 px-5 py-4">
<div className="space-y-2">
<Label htmlFor="name">Job Name</Label>
<Label htmlFor="name">Test Name</Label>
<Input
id="name"
value={form.name}