diff --git a/Frontend-Learner/i18n/locales/en.json b/Frontend-Learner/i18n/locales/en.json index b854b7c6..15c01013 100644 --- a/Frontend-Learner/i18n/locales/en.json +++ b/Frontend-Learner/i18n/locales/en.json @@ -117,7 +117,11 @@ "foundTotal": "Found Total", "items": "items", "subtitle": "Choose to learn new skills from our curated quality courses", - "searchBtn": "Search" + "searchBtn": "Search", + "allCategory": "All", + "byInstructor": "by", + "students": "students", + "viewDetails": "View Details" }, "myCourses": { "title": "My Courses", diff --git a/Frontend-Learner/i18n/locales/th.json b/Frontend-Learner/i18n/locales/th.json index d096b4ad..fd62257e 100644 --- a/Frontend-Learner/i18n/locales/th.json +++ b/Frontend-Learner/i18n/locales/th.json @@ -117,7 +117,11 @@ "foundTotal": "พบทั้งหมด", "items": "รายการ", "subtitle": "เลือกเรียนรู้ทักษะใหม่ๆ จากหลักสูตรคุณภาพที่คัดสรรมาเพื่อคุณ", - "searchBtn": "ค้นหา" + "searchBtn": "ค้นหา", + "allCategory": "ทั้งหมด", + "byInstructor": "โดย", + "students": "นักเรียน", + "viewDetails": "ดูรายละเอียด" }, "myCourses": { "title": "คอร์สของฉัน", diff --git a/Frontend-Learner/pages/browse/discovery.vue b/Frontend-Learner/pages/browse/discovery.vue index e44bb5ae..36e7dad6 100644 --- a/Frontend-Learner/pages/browse/discovery.vue +++ b/Frontend-Learner/pages/browse/discovery.vue @@ -180,19 +180,19 @@ onMounted(async () => {
-
+
-

คอร์สเรียนทั้งหมด

+

{{ $t('discovery.title') }}

- - + +
@@ -203,17 +203,17 @@ onMounted(async () => {
@@ -229,7 +229,7 @@ onMounted(async () => {
-
+
@@ -240,7 +240,7 @@ onMounted(async () => {
-

{{ getLocalizedText(course.title) }}

+

{{ getLocalizedText(course.title) }}

@@ -248,8 +248,7 @@ onMounted(async () => {
{{ course.formatted_price }}
- -
@@ -259,7 +258,7 @@ onMounted(async () => {
-
+
@@ -268,15 +267,15 @@ onMounted(async () => {
-

{{ getLocalizedText(course.title) }}

+

{{ getLocalizedText(course.title) }}

{{ course.formatted_price }}
-
@@ -290,9 +289,9 @@ onMounted(async () => {
-
+
-

{{ $t("discovery.emptyTitle") }}

+

{{ $t("discovery.emptyTitle") }}

{{ $t("discovery.emptyDesc") }}

@@ -151,7 +152,7 @@ const viewMode = ref<'grid' | 'list'>('grid') @click="selectCategory('all')" :class="selectedCategory === 'all' ? 'bg-[#E9EFFD] dark:bg-blue-900/40 text-[#3B6BE8] border-transparent font-bold' : 'bg-white dark:bg-transparent border-slate-200 dark:border-slate-700 text-slate-800 dark:text-slate-300 hover:border-slate-300 font-medium'" class="px-5 py-2.5 rounded-full border text-[13px] sm:text-[14px] flex items-center justify-center gap-2 transition-all outline-none"> - ทั้งหมด + {{ $t('discovery.allCategory') }}
@@ -246,10 +247,10 @@ const viewMode = ref<'grid' | 'list'>('grid')
-

{{ searchQuery ? 'ไม่พบคอร์สที่คุณค้นหา' : 'ไม่มีคอร์สในหมวดหมู่นี้' }}

-

ลองใช้คำค้นหาอื่น หรือเลือกหมวดหมู่อื่นเพื่อดูคอร์สที่เรามีให้บริการ

+

{{ $t('discovery.emptyTitle') }}

+

{{ $t('discovery.emptyDesc') }}

diff --git a/frontend_management/components/course/AnnouncementsTab.vue b/frontend_management/components/course/AnnouncementsTab.vue index 1efe7f2b..ab094e2f 100644 --- a/frontend_management/components/course/AnnouncementsTab.vue +++ b/frontend_management/components/course/AnnouncementsTab.vue @@ -343,10 +343,12 @@ const save = async () => { saving.value = true; try { // Convert local datetime to ISO string to preserve timezone - const payload = { ...form.value }; + const payload: any = { ...form.value }; if (payload.published_at) { const localDate = new Date(payload.published_at.replace(' ', 'T')); payload.published_at = localDate.toISOString(); + } else { + delete payload.published_at; } if (editing.value) { @@ -447,10 +449,7 @@ const deleteAttachment = async (attachmentId: number) => { } }; -const formatDate = (dateStr: string) => { - const date = new Date(dateStr); - return date.toLocaleDateString('th-TH', { day: 'numeric', month: 'short', year: 'numeric' }); -}; +// Date formatting function is auto-imported from utils/date.ts const formatFileSize = (bytes: number) => { if (bytes < 1024) return bytes + ' B'; diff --git a/frontend_management/components/course/ApprovalHistoryTab.vue b/frontend_management/components/course/ApprovalHistoryTab.vue index f1dd8942..335845b3 100644 --- a/frontend_management/components/course/ApprovalHistoryTab.vue +++ b/frontend_management/components/course/ApprovalHistoryTab.vue @@ -20,7 +20,7 @@ v-for="item in history" :key="item.id" :title="titleMap[item.action] || item.action" - :subtitle="formatDate(item.created_at)" + :subtitle="formatDateTime(item.created_at)" :color="colorMap[item.action] || 'grey'" :icon="iconMap[item.action] || 'circle'" > @@ -91,12 +91,7 @@ const getActorName = (item: ApprovalHistory) => { return actor.username || actor.email || 'Unknown User'; }; -const formatDate = (dateString: string) => { - return new Date(dateString).toLocaleString('th-TH', { - dateStyle: 'medium', - timeStyle: 'short' - }); -}; +// Date formatting function is auto-imported from utils/date.ts onMounted(() => { fetchHistory(); diff --git a/frontend_management/components/course/QuizResultsTab.vue b/frontend_management/components/course/QuizResultsTab.vue index eef37e63..c69ebe97 100644 --- a/frontend_management/components/course/QuizResultsTab.vue +++ b/frontend_management/components/course/QuizResultsTab.vue @@ -450,14 +450,7 @@ const openStudentDetail = async (studentId: number) => { const formatDate = (dateStr: string) => { if (!dateStr) return '-'; - const date = new Date(dateStr); - return date.toLocaleDateString('th-TH', { - day: 'numeric', - month: 'short', - year: 'numeric', - hour: '2-digit', - minute: '2-digit' - }); + return formatDateTime(dateStr); }; // Lifecycle diff --git a/frontend_management/components/course/StudentsTab.vue b/frontend_management/components/course/StudentsTab.vue index 9a8f4416..1cd742b1 100644 --- a/frontend_management/components/course/StudentsTab.vue +++ b/frontend_management/components/course/StudentsTab.vue @@ -404,8 +404,7 @@ const getStudentStatusLabel = (status: string) => { }; const formatEnrollDate = (dateStr: string) => { - const date = new Date(dateStr); - return date.toLocaleDateString('th-TH', { day: 'numeric', month: 'short', year: 'numeric' }); + return formatDate(dateStr); }; const getLessonTypeIcon = (type: string) => { @@ -436,8 +435,7 @@ const formatVideoTime = (seconds: number) => { const formatCompletedDate = (dateStr: string | null) => { if (!dateStr) return '-'; - const date = new Date(dateStr); - return date.toLocaleDateString('th-TH', { day: 'numeric', month: 'short' }); + return formatDate(dateStr); }; // Fetch on mount diff --git a/frontend_management/pages/admin/audit-log/index.vue b/frontend_management/pages/admin/audit-log/index.vue index 1214298e..8038014e 100644 --- a/frontend_management/pages/admin/audit-log/index.vue +++ b/frontend_management/pages/admin/audit-log/index.vue @@ -136,7 +136,7 @@ @@ -169,7 +169,7 @@
Date & Time
-
{{ formatDate(selectedLog.created_at) }}
+
{{ formatDateTime(selectedLog.created_at) }}
@@ -241,7 +241,7 @@ diff --git a/frontend_management/pages/instructor/profile/index.vue b/frontend_management/pages/instructor/profile/index.vue index 6a602a39..6a36b365 100644 --- a/frontend_management/pages/instructor/profile/index.vue +++ b/frontend_management/pages/instructor/profile/index.vue @@ -301,7 +301,7 @@ + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/test_result/Admin/Categories_Page_Tests/data/1ee1d6d7d57c179e96128e40db55227dd86a7817.png b/frontend_management/test_result/Admin/Categories_Page_Tests/data/1ee1d6d7d57c179e96128e40db55227dd86a7817.png new file mode 100644 index 00000000..db3ac331 Binary files /dev/null and b/frontend_management/test_result/Admin/Categories_Page_Tests/data/1ee1d6d7d57c179e96128e40db55227dd86a7817.png differ diff --git a/frontend_management/test_result/Admin/Categories_Page_Tests/data/35df25d6cdde602ee836a293f5167004c1a5fa77.png b/frontend_management/test_result/Admin/Categories_Page_Tests/data/35df25d6cdde602ee836a293f5167004c1a5fa77.png new file mode 100644 index 00000000..944b8caa Binary files /dev/null and b/frontend_management/test_result/Admin/Categories_Page_Tests/data/35df25d6cdde602ee836a293f5167004c1a5fa77.png differ diff --git a/frontend_management/test_result/Admin/Categories_Page_Tests/data/4090ba8133de6c748a59d2da9b782a04fc4c6db0.png b/frontend_management/test_result/Admin/Categories_Page_Tests/data/4090ba8133de6c748a59d2da9b782a04fc4c6db0.png new file mode 100644 index 00000000..4592b7ed Binary files /dev/null and b/frontend_management/test_result/Admin/Categories_Page_Tests/data/4090ba8133de6c748a59d2da9b782a04fc4c6db0.png differ diff --git a/frontend_management/test_result/Admin/Categories_Page_Tests/data/41e85c99c7d03cc714e887a691300a72ec49360c.png b/frontend_management/test_result/Admin/Categories_Page_Tests/data/41e85c99c7d03cc714e887a691300a72ec49360c.png new file mode 100644 index 00000000..a1fc23c8 Binary files /dev/null and b/frontend_management/test_result/Admin/Categories_Page_Tests/data/41e85c99c7d03cc714e887a691300a72ec49360c.png differ diff --git a/frontend_management/test_result/Admin/Categories_Page_Tests/data/65fdbc416f0e24dec95ce26a8d821ef9cb3765bf.png b/frontend_management/test_result/Admin/Categories_Page_Tests/data/65fdbc416f0e24dec95ce26a8d821ef9cb3765bf.png new file mode 100644 index 00000000..8a399922 Binary files /dev/null and b/frontend_management/test_result/Admin/Categories_Page_Tests/data/65fdbc416f0e24dec95ce26a8d821ef9cb3765bf.png differ diff --git a/frontend_management/test_result/Admin/Categories_Page_Tests/data/827f0948bcc7200f737fc0a088783bbea297f50f.png b/frontend_management/test_result/Admin/Categories_Page_Tests/data/827f0948bcc7200f737fc0a088783bbea297f50f.png new file mode 100644 index 00000000..c5136041 Binary files /dev/null and b/frontend_management/test_result/Admin/Categories_Page_Tests/data/827f0948bcc7200f737fc0a088783bbea297f50f.png differ diff --git a/frontend_management/test_result/Admin/Categories_Page_Tests/data/c8902bf323a4786f68fa00ea84781ba7957d7d7a.png b/frontend_management/test_result/Admin/Categories_Page_Tests/data/c8902bf323a4786f68fa00ea84781ba7957d7d7a.png new file mode 100644 index 00000000..8b7350fe Binary files /dev/null and b/frontend_management/test_result/Admin/Categories_Page_Tests/data/c8902bf323a4786f68fa00ea84781ba7957d7d7a.png differ diff --git a/frontend_management/test_result/Admin/Categories_Page_Tests/data/ccf7ebb27025218191824d8efc9ca47e1c964b1e.png b/frontend_management/test_result/Admin/Categories_Page_Tests/data/ccf7ebb27025218191824d8efc9ca47e1c964b1e.png new file mode 100644 index 00000000..7d421301 Binary files /dev/null and b/frontend_management/test_result/Admin/Categories_Page_Tests/data/ccf7ebb27025218191824d8efc9ca47e1c964b1e.png differ diff --git a/frontend_management/test_result/Admin/Categories_Page_Tests/data/f25e29ca1b01c21b07dca63fe776c2605caf1ccd.png b/frontend_management/test_result/Admin/Categories_Page_Tests/data/f25e29ca1b01c21b07dca63fe776c2605caf1ccd.png new file mode 100644 index 00000000..64c9a1dd Binary files /dev/null and b/frontend_management/test_result/Admin/Categories_Page_Tests/data/f25e29ca1b01c21b07dca63fe776c2605caf1ccd.png differ diff --git a/frontend_management/test_result/Admin/Categories_Page_Tests/index.html b/frontend_management/test_result/Admin/Categories_Page_Tests/index.html new file mode 100644 index 00000000..5f77a512 --- /dev/null +++ b/frontend_management/test_result/Admin/Categories_Page_Tests/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/test_result/Admin/Dashboard_Tests/data/0db70a62c5681aa2ef14d34994eccd60520d3e47.png b/frontend_management/test_result/Admin/Dashboard_Tests/data/0db70a62c5681aa2ef14d34994eccd60520d3e47.png new file mode 100644 index 00000000..0c421643 Binary files /dev/null and b/frontend_management/test_result/Admin/Dashboard_Tests/data/0db70a62c5681aa2ef14d34994eccd60520d3e47.png differ diff --git a/frontend_management/test_result/Admin/Dashboard_Tests/data/4c5d3eb5a2e8a33833fc35360a3b8a045628cb2d.png b/frontend_management/test_result/Admin/Dashboard_Tests/data/4c5d3eb5a2e8a33833fc35360a3b8a045628cb2d.png new file mode 100644 index 00000000..cc471d96 Binary files /dev/null and b/frontend_management/test_result/Admin/Dashboard_Tests/data/4c5d3eb5a2e8a33833fc35360a3b8a045628cb2d.png differ diff --git a/frontend_management/test_result/Admin/Dashboard_Tests/data/866d6a06b33921ae112d5bfea6d92b229038f4bd.png b/frontend_management/test_result/Admin/Dashboard_Tests/data/866d6a06b33921ae112d5bfea6d92b229038f4bd.png new file mode 100644 index 00000000..1e748d43 Binary files /dev/null and b/frontend_management/test_result/Admin/Dashboard_Tests/data/866d6a06b33921ae112d5bfea6d92b229038f4bd.png differ diff --git a/frontend_management/test_result/Admin/Dashboard_Tests/data/a5d4e4da3ea2fb373b41f4adbb13d2b24b8ccfe1.png b/frontend_management/test_result/Admin/Dashboard_Tests/data/a5d4e4da3ea2fb373b41f4adbb13d2b24b8ccfe1.png new file mode 100644 index 00000000..d113cb05 Binary files /dev/null and b/frontend_management/test_result/Admin/Dashboard_Tests/data/a5d4e4da3ea2fb373b41f4adbb13d2b24b8ccfe1.png differ diff --git a/frontend_management/test_result/Admin/Dashboard_Tests/index.html b/frontend_management/test_result/Admin/Dashboard_Tests/index.html new file mode 100644 index 00000000..a7996631 --- /dev/null +++ b/frontend_management/test_result/Admin/Dashboard_Tests/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/0453f4201cd452cfa653e6439a05e46caba79eb8.png b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/0453f4201cd452cfa653e6439a05e46caba79eb8.png new file mode 100644 index 00000000..b939642c Binary files /dev/null and b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/0453f4201cd452cfa653e6439a05e46caba79eb8.png differ diff --git a/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/2efbe1198619aae53dd8768e53e81002d0b357a5.png b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/2efbe1198619aae53dd8768e53e81002d0b357a5.png new file mode 100644 index 00000000..6ed877f9 Binary files /dev/null and b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/2efbe1198619aae53dd8768e53e81002d0b357a5.png differ diff --git a/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/528b1769e5aa0373f08be5b1e93ca6bd4de71183.png b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/528b1769e5aa0373f08be5b1e93ca6bd4de71183.png new file mode 100644 index 00000000..6e07ef8b Binary files /dev/null and b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/528b1769e5aa0373f08be5b1e93ca6bd4de71183.png differ diff --git a/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/6c599641f8347eea9faef8a04424075e5fc3e8dc.png b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/6c599641f8347eea9faef8a04424075e5fc3e8dc.png new file mode 100644 index 00000000..941915f8 Binary files /dev/null and b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/6c599641f8347eea9faef8a04424075e5fc3e8dc.png differ diff --git a/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/aa0f425a2702d00bbdd804a1d4ca9fadf55a6562.png b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/aa0f425a2702d00bbdd804a1d4ca9fadf55a6562.png new file mode 100644 index 00000000..9e224c65 Binary files /dev/null and b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/aa0f425a2702d00bbdd804a1d4ca9fadf55a6562.png differ diff --git a/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/b051465650cc45a9db3430a37a44a4cd60e679dd.png b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/b051465650cc45a9db3430a37a44a4cd60e679dd.png new file mode 100644 index 00000000..1895e9f4 Binary files /dev/null and b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/b051465650cc45a9db3430a37a44a4cd60e679dd.png differ diff --git a/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/c5561250ddaf7ee9f68edf5ab096f616efd38664.png b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/c5561250ddaf7ee9f68edf5ab096f616efd38664.png new file mode 100644 index 00000000..7fc15fdd Binary files /dev/null and b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/data/c5561250ddaf7ee9f68edf5ab096f616efd38664.png differ diff --git a/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/index.html b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/index.html new file mode 100644 index 00000000..c302dc7a --- /dev/null +++ b/frontend_management/test_result/Admin/Pending_Courses_Page_Tests/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/069d36dffaf29e9ba9d4e6d0e2d50d69247e576d.png b/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/069d36dffaf29e9ba9d4e6d0e2d50d69247e576d.png new file mode 100644 index 00000000..57078284 Binary files /dev/null and b/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/069d36dffaf29e9ba9d4e6d0e2d50d69247e576d.png differ diff --git a/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/20201a029c254b88c8fcee02d0222ed560bca040.png b/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/20201a029c254b88c8fcee02d0222ed560bca040.png new file mode 100644 index 00000000..36076d76 Binary files /dev/null and b/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/20201a029c254b88c8fcee02d0222ed560bca040.png differ diff --git a/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/adb564f25d91be7a7a19adc86618e4c587c22852.png b/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/adb564f25d91be7a7a19adc86618e4c587c22852.png new file mode 100644 index 00000000..b766c7aa Binary files /dev/null and b/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/adb564f25d91be7a7a19adc86618e4c587c22852.png differ diff --git a/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/ae9d78c1d16c81f14166fcc263feb68daff0b337.png b/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/ae9d78c1d16c81f14166fcc263feb68daff0b337.png new file mode 100644 index 00000000..a288a93b Binary files /dev/null and b/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/data/ae9d78c1d16c81f14166fcc263feb68daff0b337.png differ diff --git a/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/index.html b/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/index.html new file mode 100644 index 00000000..2e85b1f5 --- /dev/null +++ b/frontend_management/test_result/Admin/Recommended_Courses_Page_Tests/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/test_result/Admin/Users_Page_Tests/data/01131b544f7ef5ab6ae9159c7b3aeb54a6a35ace.png b/frontend_management/test_result/Admin/Users_Page_Tests/data/01131b544f7ef5ab6ae9159c7b3aeb54a6a35ace.png new file mode 100644 index 00000000..98b540e2 Binary files /dev/null and b/frontend_management/test_result/Admin/Users_Page_Tests/data/01131b544f7ef5ab6ae9159c7b3aeb54a6a35ace.png differ diff --git a/frontend_management/test_result/Admin/Users_Page_Tests/data/14505851a4cfcd340a2c15e4eede8ba1b00a45f3.png b/frontend_management/test_result/Admin/Users_Page_Tests/data/14505851a4cfcd340a2c15e4eede8ba1b00a45f3.png new file mode 100644 index 00000000..6702afbb Binary files /dev/null and b/frontend_management/test_result/Admin/Users_Page_Tests/data/14505851a4cfcd340a2c15e4eede8ba1b00a45f3.png differ diff --git a/frontend_management/test_result/Admin/Users_Page_Tests/data/61c9b0535c23ea7767a4692c7b1cd5b7efa77198.png b/frontend_management/test_result/Admin/Users_Page_Tests/data/61c9b0535c23ea7767a4692c7b1cd5b7efa77198.png new file mode 100644 index 00000000..e126ef23 Binary files /dev/null and b/frontend_management/test_result/Admin/Users_Page_Tests/data/61c9b0535c23ea7767a4692c7b1cd5b7efa77198.png differ diff --git a/frontend_management/test_result/Admin/Users_Page_Tests/data/8cd29873e393b6d0d06b99325f7d44448dba4e7d.png b/frontend_management/test_result/Admin/Users_Page_Tests/data/8cd29873e393b6d0d06b99325f7d44448dba4e7d.png new file mode 100644 index 00000000..f6515336 Binary files /dev/null and b/frontend_management/test_result/Admin/Users_Page_Tests/data/8cd29873e393b6d0d06b99325f7d44448dba4e7d.png differ diff --git a/frontend_management/test_result/Admin/Users_Page_Tests/data/9136118b9393d5080e9936f45e76adb40b146c51.png b/frontend_management/test_result/Admin/Users_Page_Tests/data/9136118b9393d5080e9936f45e76adb40b146c51.png new file mode 100644 index 00000000..c68d7f69 Binary files /dev/null and b/frontend_management/test_result/Admin/Users_Page_Tests/data/9136118b9393d5080e9936f45e76adb40b146c51.png differ diff --git a/frontend_management/test_result/Admin/Users_Page_Tests/data/a54e6793c83ac936ea2d687bc0846ceb6356f757.png b/frontend_management/test_result/Admin/Users_Page_Tests/data/a54e6793c83ac936ea2d687bc0846ceb6356f757.png new file mode 100644 index 00000000..66015c9b Binary files /dev/null and b/frontend_management/test_result/Admin/Users_Page_Tests/data/a54e6793c83ac936ea2d687bc0846ceb6356f757.png differ diff --git a/frontend_management/test_result/Admin/Users_Page_Tests/data/c57dab7bdd78b963cffec28b4fc8d505bc610443.png b/frontend_management/test_result/Admin/Users_Page_Tests/data/c57dab7bdd78b963cffec28b4fc8d505bc610443.png new file mode 100644 index 00000000..b4d47e28 Binary files /dev/null and b/frontend_management/test_result/Admin/Users_Page_Tests/data/c57dab7bdd78b963cffec28b4fc8d505bc610443.png differ diff --git a/frontend_management/test_result/Admin/Users_Page_Tests/data/f00e2afd169f0d440483247810ca3f3aa12fcb8e.png b/frontend_management/test_result/Admin/Users_Page_Tests/data/f00e2afd169f0d440483247810ca3f3aa12fcb8e.png new file mode 100644 index 00000000..602d399a Binary files /dev/null and b/frontend_management/test_result/Admin/Users_Page_Tests/data/f00e2afd169f0d440483247810ca3f3aa12fcb8e.png differ diff --git a/frontend_management/test_result/Admin/Users_Page_Tests/index.html b/frontend_management/test_result/Admin/Users_Page_Tests/index.html new file mode 100644 index 00000000..45ea8365 --- /dev/null +++ b/frontend_management/test_result/Admin/Users_Page_Tests/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/3daa583ffad06b8cb14b557facad1bd9f955f649.png b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/3daa583ffad06b8cb14b557facad1bd9f955f649.png new file mode 100644 index 00000000..cbc5c2f8 Binary files /dev/null and b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/3daa583ffad06b8cb14b557facad1bd9f955f649.png differ diff --git a/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/6a663960da5071a13ba4d0efe05b15795a404dd5.png b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/6a663960da5071a13ba4d0efe05b15795a404dd5.png new file mode 100644 index 00000000..09eac2d6 Binary files /dev/null and b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/6a663960da5071a13ba4d0efe05b15795a404dd5.png differ diff --git a/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/6f367ab188ae80996e584f9b58e0a689e5b7736c.png b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/6f367ab188ae80996e584f9b58e0a689e5b7736c.png new file mode 100644 index 00000000..74f116d3 Binary files /dev/null and b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/6f367ab188ae80996e584f9b58e0a689e5b7736c.png differ diff --git a/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/7a7022d29cc41e4c91622d52c4d4bec33e5ea27b.png b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/7a7022d29cc41e4c91622d52c4d4bec33e5ea27b.png new file mode 100644 index 00000000..3a55d20c Binary files /dev/null and b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/7a7022d29cc41e4c91622d52c4d4bec33e5ea27b.png differ diff --git a/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/bb4d5765838ec53396637363d765fe9999a23cef.png b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/bb4d5765838ec53396637363d765fe9999a23cef.png new file mode 100644 index 00000000..2ad8b85c Binary files /dev/null and b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/bb4d5765838ec53396637363d765fe9999a23cef.png differ diff --git a/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/c5a76b0d67d10db9794f5eaaa0ad93900dc66ef9.png b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/c5a76b0d67d10db9794f5eaaa0ad93900dc66ef9.png new file mode 100644 index 00000000..41ba0c17 Binary files /dev/null and b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/c5a76b0d67d10db9794f5eaaa0ad93900dc66ef9.png differ diff --git a/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/c9db8fa9d3f7eebe20c935bc28970c686729b80e.png b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/c9db8fa9d3f7eebe20c935bc28970c686729b80e.png new file mode 100644 index 00000000..a35dbe1a Binary files /dev/null and b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/c9db8fa9d3f7eebe20c935bc28970c686729b80e.png differ diff --git a/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/d8269d490caef20a582ba9d9105b7d11a23a763a.png b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/d8269d490caef20a582ba9d9105b7d11a23a763a.png new file mode 100644 index 00000000..cbf6ae48 Binary files /dev/null and b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/d8269d490caef20a582ba9d9105b7d11a23a763a.png differ diff --git a/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/fd5921cba1eca4f1439b107ba699e33ec81efb98.png b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/fd5921cba1eca4f1439b107ba699e33ec81efb98.png new file mode 100644 index 00000000..7731b60c Binary files /dev/null and b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/data/fd5921cba1eca4f1439b107ba699e33ec81efb98.png differ diff --git a/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/index.html b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/index.html new file mode 100644 index 00000000..3ca52779 --- /dev/null +++ b/frontend_management/test_result/Instructor/Course_Detail_Tabs_Tests/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/05c8d6b6bda96733768c9040919a1f2a5e01baff.png b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/05c8d6b6bda96733768c9040919a1f2a5e01baff.png new file mode 100644 index 00000000..00428998 Binary files /dev/null and b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/05c8d6b6bda96733768c9040919a1f2a5e01baff.png differ diff --git a/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/124aa5c1e2968710d7151e06d900bb12f41eb2f3.png b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/124aa5c1e2968710d7151e06d900bb12f41eb2f3.png new file mode 100644 index 00000000..15095bd7 Binary files /dev/null and b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/124aa5c1e2968710d7151e06d900bb12f41eb2f3.png differ diff --git a/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/3d172ca5f26f33c946c982ccccb69b895adabc25.png b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/3d172ca5f26f33c946c982ccccb69b895adabc25.png new file mode 100644 index 00000000..dca353d5 Binary files /dev/null and b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/3d172ca5f26f33c946c982ccccb69b895adabc25.png differ diff --git a/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/3e76fc70092c9da0bdce1f5f6416f09fa381c305.png b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/3e76fc70092c9da0bdce1f5f6416f09fa381c305.png new file mode 100644 index 00000000..08290a9d Binary files /dev/null and b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/3e76fc70092c9da0bdce1f5f6416f09fa381c305.png differ diff --git a/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/59409841bc0a58fee9b289ae43471f82aeadced6.png b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/59409841bc0a58fee9b289ae43471f82aeadced6.png new file mode 100644 index 00000000..d675aca2 Binary files /dev/null and b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/59409841bc0a58fee9b289ae43471f82aeadced6.png differ diff --git a/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/5ab116131594ffd0289eefd700d6491505e1c71a.png b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/5ab116131594ffd0289eefd700d6491505e1c71a.png new file mode 100644 index 00000000..822bd62f Binary files /dev/null and b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/5ab116131594ffd0289eefd700d6491505e1c71a.png differ diff --git a/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/ceb066997ecc48380fe55519c2c5201661b92d65.png b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/ceb066997ecc48380fe55519c2c5201661b92d65.png new file mode 100644 index 00000000..1bb7ec85 Binary files /dev/null and b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/ceb066997ecc48380fe55519c2c5201661b92d65.png differ diff --git a/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/e7fd2a77f7879d1bda44afce77a4e1b085add249.png b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/e7fd2a77f7879d1bda44afce77a4e1b085add249.png new file mode 100644 index 00000000..9b723346 Binary files /dev/null and b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/e7fd2a77f7879d1bda44afce77a4e1b085add249.png differ diff --git a/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/ebb6e30487eeb33a334792f175969cd79b956af6.png b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/ebb6e30487eeb33a334792f175969cd79b956af6.png new file mode 100644 index 00000000..fb7fab7c Binary files /dev/null and b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/data/ebb6e30487eeb33a334792f175969cd79b956af6.png differ diff --git a/frontend_management/test_result/Instructor/Courses_List_Page_Tests/index.html b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/index.html new file mode 100644 index 00000000..a65852b2 --- /dev/null +++ b/frontend_management/test_result/Instructor/Courses_List_Page_Tests/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/27f0f34d39ba3afdcddd6292f21b1fb2e1f91347.png b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/27f0f34d39ba3afdcddd6292f21b1fb2e1f91347.png new file mode 100644 index 00000000..4d640a4f Binary files /dev/null and b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/27f0f34d39ba3afdcddd6292f21b1fb2e1f91347.png differ diff --git a/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/2a52458e5d775d7f6a5470a4ebe6dfce88202762.png b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/2a52458e5d775d7f6a5470a4ebe6dfce88202762.png new file mode 100644 index 00000000..0040e662 Binary files /dev/null and b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/2a52458e5d775d7f6a5470a4ebe6dfce88202762.png differ diff --git a/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/7957c7870ad1af4b313598a422bf95f9975bd4b3.png b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/7957c7870ad1af4b313598a422bf95f9975bd4b3.png new file mode 100644 index 00000000..b7325c6a Binary files /dev/null and b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/7957c7870ad1af4b313598a422bf95f9975bd4b3.png differ diff --git a/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/aeaead5182882b1c055b71b4263a086d49ae21f9.png b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/aeaead5182882b1c055b71b4263a086d49ae21f9.png new file mode 100644 index 00000000..bb1671c7 Binary files /dev/null and b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/aeaead5182882b1c055b71b4263a086d49ae21f9.png differ diff --git a/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/bbf166853a6c394a6ca293b2395842ca32fa59fb.png b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/bbf166853a6c394a6ca293b2395842ca32fa59fb.png new file mode 100644 index 00000000..b7e3a691 Binary files /dev/null and b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/bbf166853a6c394a6ca293b2395842ca32fa59fb.png differ diff --git a/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/c218c639a925799e58f2c6cd7a6285d1bf3a63da.png b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/c218c639a925799e58f2c6cd7a6285d1bf3a63da.png new file mode 100644 index 00000000..af0ef959 Binary files /dev/null and b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/c218c639a925799e58f2c6cd7a6285d1bf3a63da.png differ diff --git a/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/c33d46f246f6417be4064747a2cadbfce753066e.png b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/c33d46f246f6417be4064747a2cadbfce753066e.png new file mode 100644 index 00000000..09edd9c0 Binary files /dev/null and b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/c33d46f246f6417be4064747a2cadbfce753066e.png differ diff --git a/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/c7e5afbe64b19d3bca6a5563b2b5fac4f58742ca.png b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/c7e5afbe64b19d3bca6a5563b2b5fac4f58742ca.png new file mode 100644 index 00000000..134e5680 Binary files /dev/null and b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/c7e5afbe64b19d3bca6a5563b2b5fac4f58742ca.png differ diff --git a/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/f0a098f9935cd85e715e1c92119eb18b3cc23078.png b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/f0a098f9935cd85e715e1c92119eb18b3cc23078.png new file mode 100644 index 00000000..9dc39bd3 Binary files /dev/null and b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/f0a098f9935cd85e715e1c92119eb18b3cc23078.png differ diff --git a/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/fa57c0d509931d0977a2cc80bc5da68b6e474c23.png b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/fa57c0d509931d0977a2cc80bc5da68b6e474c23.png new file mode 100644 index 00000000..0a160951 Binary files /dev/null and b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/data/fa57c0d509931d0977a2cc80bc5da68b6e474c23.png differ diff --git a/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/index.html b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/index.html new file mode 100644 index 00000000..76c7bfbe --- /dev/null +++ b/frontend_management/test_result/Instructor/Create_Course_&_Structure_Tests/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/test_result/Instructor/Dashboard_Tests/data/153d6902c0ca4fef1aa2fc65120adc1d08048286.png b/frontend_management/test_result/Instructor/Dashboard_Tests/data/153d6902c0ca4fef1aa2fc65120adc1d08048286.png new file mode 100644 index 00000000..159eea6f Binary files /dev/null and b/frontend_management/test_result/Instructor/Dashboard_Tests/data/153d6902c0ca4fef1aa2fc65120adc1d08048286.png differ diff --git a/frontend_management/test_result/Instructor/Dashboard_Tests/data/452ffe0882b032c2d3bab8fe7fe4b31907aa7ec5.png b/frontend_management/test_result/Instructor/Dashboard_Tests/data/452ffe0882b032c2d3bab8fe7fe4b31907aa7ec5.png new file mode 100644 index 00000000..ec57a13d Binary files /dev/null and b/frontend_management/test_result/Instructor/Dashboard_Tests/data/452ffe0882b032c2d3bab8fe7fe4b31907aa7ec5.png differ diff --git a/frontend_management/test_result/Instructor/Dashboard_Tests/data/4e2f57b76392ddca8cf0d10da5302f65a7045e4f.png b/frontend_management/test_result/Instructor/Dashboard_Tests/data/4e2f57b76392ddca8cf0d10da5302f65a7045e4f.png new file mode 100644 index 00000000..bcc7f90b Binary files /dev/null and b/frontend_management/test_result/Instructor/Dashboard_Tests/data/4e2f57b76392ddca8cf0d10da5302f65a7045e4f.png differ diff --git a/frontend_management/test_result/Instructor/Dashboard_Tests/data/85b3be3b178a6a2e49e992a3f9d0c366b9474fbc.png b/frontend_management/test_result/Instructor/Dashboard_Tests/data/85b3be3b178a6a2e49e992a3f9d0c366b9474fbc.png new file mode 100644 index 00000000..cf757634 Binary files /dev/null and b/frontend_management/test_result/Instructor/Dashboard_Tests/data/85b3be3b178a6a2e49e992a3f9d0c366b9474fbc.png differ diff --git a/frontend_management/test_result/Instructor/Dashboard_Tests/data/c774e2d38891f831ce99cc3f497ad1b1090077de.png b/frontend_management/test_result/Instructor/Dashboard_Tests/data/c774e2d38891f831ce99cc3f497ad1b1090077de.png new file mode 100644 index 00000000..fae095d1 Binary files /dev/null and b/frontend_management/test_result/Instructor/Dashboard_Tests/data/c774e2d38891f831ce99cc3f497ad1b1090077de.png differ diff --git a/frontend_management/test_result/Instructor/Dashboard_Tests/data/ccb7f4bf19a7a5908adc27d250a40618847c1cf2.png b/frontend_management/test_result/Instructor/Dashboard_Tests/data/ccb7f4bf19a7a5908adc27d250a40618847c1cf2.png new file mode 100644 index 00000000..92ba35d6 Binary files /dev/null and b/frontend_management/test_result/Instructor/Dashboard_Tests/data/ccb7f4bf19a7a5908adc27d250a40618847c1cf2.png differ diff --git a/frontend_management/test_result/Instructor/Dashboard_Tests/index.html b/frontend_management/test_result/Instructor/Dashboard_Tests/index.html new file mode 100644 index 00000000..1a5b4749 --- /dev/null +++ b/frontend_management/test_result/Instructor/Dashboard_Tests/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/test_result/auth/Login_Page_Tests/data/16708d259129df93cdd9a5cd6260b44467f430e0.png b/frontend_management/test_result/auth/Login_Page_Tests/data/16708d259129df93cdd9a5cd6260b44467f430e0.png new file mode 100644 index 00000000..fd6160b2 Binary files /dev/null and b/frontend_management/test_result/auth/Login_Page_Tests/data/16708d259129df93cdd9a5cd6260b44467f430e0.png differ diff --git a/frontend_management/test_result/auth/Login_Page_Tests/data/631c2ea22b6adeaed9641041947a76d74edc18b8.png b/frontend_management/test_result/auth/Login_Page_Tests/data/631c2ea22b6adeaed9641041947a76d74edc18b8.png new file mode 100644 index 00000000..e846ed00 Binary files /dev/null and b/frontend_management/test_result/auth/Login_Page_Tests/data/631c2ea22b6adeaed9641041947a76d74edc18b8.png differ diff --git a/frontend_management/test_result/auth/Login_Page_Tests/data/65f8acf6a09faed4c14ed6a633732862db853d36.png b/frontend_management/test_result/auth/Login_Page_Tests/data/65f8acf6a09faed4c14ed6a633732862db853d36.png new file mode 100644 index 00000000..ee5d20ce Binary files /dev/null and b/frontend_management/test_result/auth/Login_Page_Tests/data/65f8acf6a09faed4c14ed6a633732862db853d36.png differ diff --git a/frontend_management/test_result/auth/Login_Page_Tests/data/7e79c41c8858b523f5f00ca0d96ee66e8a87263c.png b/frontend_management/test_result/auth/Login_Page_Tests/data/7e79c41c8858b523f5f00ca0d96ee66e8a87263c.png new file mode 100644 index 00000000..fd586dab Binary files /dev/null and b/frontend_management/test_result/auth/Login_Page_Tests/data/7e79c41c8858b523f5f00ca0d96ee66e8a87263c.png differ diff --git a/frontend_management/test_result/auth/Login_Page_Tests/data/84ee2be597a0472f1f34fba60dabc39a3397acc0.png b/frontend_management/test_result/auth/Login_Page_Tests/data/84ee2be597a0472f1f34fba60dabc39a3397acc0.png new file mode 100644 index 00000000..4bcb1fd7 Binary files /dev/null and b/frontend_management/test_result/auth/Login_Page_Tests/data/84ee2be597a0472f1f34fba60dabc39a3397acc0.png differ diff --git a/frontend_management/test_result/auth/Login_Page_Tests/data/a9f2781e64d249e5dcb8ae23681d82b7e0306f11.png b/frontend_management/test_result/auth/Login_Page_Tests/data/a9f2781e64d249e5dcb8ae23681d82b7e0306f11.png new file mode 100644 index 00000000..04846e58 Binary files /dev/null and b/frontend_management/test_result/auth/Login_Page_Tests/data/a9f2781e64d249e5dcb8ae23681d82b7e0306f11.png differ diff --git a/frontend_management/test_result/auth/Login_Page_Tests/data/bc9a2a90835ca972045b4e2fd9eedab17f6e1cab.png b/frontend_management/test_result/auth/Login_Page_Tests/data/bc9a2a90835ca972045b4e2fd9eedab17f6e1cab.png new file mode 100644 index 00000000..22656a62 Binary files /dev/null and b/frontend_management/test_result/auth/Login_Page_Tests/data/bc9a2a90835ca972045b4e2fd9eedab17f6e1cab.png differ diff --git a/frontend_management/test_result/auth/Login_Page_Tests/data/dca2a979a4f710cebde1893e6fa7a420bbce07ca.png b/frontend_management/test_result/auth/Login_Page_Tests/data/dca2a979a4f710cebde1893e6fa7a420bbce07ca.png new file mode 100644 index 00000000..514da961 Binary files /dev/null and b/frontend_management/test_result/auth/Login_Page_Tests/data/dca2a979a4f710cebde1893e6fa7a420bbce07ca.png differ diff --git a/frontend_management/test_result/auth/Login_Page_Tests/data/e391cbda97e779364b7c6ab4a9c78a999b4aeef1.png b/frontend_management/test_result/auth/Login_Page_Tests/data/e391cbda97e779364b7c6ab4a9c78a999b4aeef1.png new file mode 100644 index 00000000..1374e6c7 Binary files /dev/null and b/frontend_management/test_result/auth/Login_Page_Tests/data/e391cbda97e779364b7c6ab4a9c78a999b4aeef1.png differ diff --git a/frontend_management/test_result/auth/Login_Page_Tests/index.html b/frontend_management/test_result/auth/Login_Page_Tests/index.html new file mode 100644 index 00000000..982af847 --- /dev/null +++ b/frontend_management/test_result/auth/Login_Page_Tests/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/test_result/auth/Register_Page_Tests/data/0809b14cfe86a6650b5c9ccaea6ab6396a7c6882.png b/frontend_management/test_result/auth/Register_Page_Tests/data/0809b14cfe86a6650b5c9ccaea6ab6396a7c6882.png new file mode 100644 index 00000000..0c642e08 Binary files /dev/null and b/frontend_management/test_result/auth/Register_Page_Tests/data/0809b14cfe86a6650b5c9ccaea6ab6396a7c6882.png differ diff --git a/frontend_management/test_result/auth/Register_Page_Tests/data/34608ae454cb4fdde9edcfee7bc324ff6e9ac00a.png b/frontend_management/test_result/auth/Register_Page_Tests/data/34608ae454cb4fdde9edcfee7bc324ff6e9ac00a.png new file mode 100644 index 00000000..2cd4e3bf Binary files /dev/null and b/frontend_management/test_result/auth/Register_Page_Tests/data/34608ae454cb4fdde9edcfee7bc324ff6e9ac00a.png differ diff --git a/frontend_management/test_result/auth/Register_Page_Tests/data/34a7199dc793b5cc6db9a6e2ab253bbb974a12cd.png b/frontend_management/test_result/auth/Register_Page_Tests/data/34a7199dc793b5cc6db9a6e2ab253bbb974a12cd.png new file mode 100644 index 00000000..203a8cb1 Binary files /dev/null and b/frontend_management/test_result/auth/Register_Page_Tests/data/34a7199dc793b5cc6db9a6e2ab253bbb974a12cd.png differ diff --git a/frontend_management/test_result/auth/Register_Page_Tests/data/7d0da5fa1e26962ec6c30ce5825cb0d1385cf2cd.png b/frontend_management/test_result/auth/Register_Page_Tests/data/7d0da5fa1e26962ec6c30ce5825cb0d1385cf2cd.png new file mode 100644 index 00000000..ab38c3c8 Binary files /dev/null and b/frontend_management/test_result/auth/Register_Page_Tests/data/7d0da5fa1e26962ec6c30ce5825cb0d1385cf2cd.png differ diff --git a/frontend_management/test_result/auth/Register_Page_Tests/data/9efa2fbb70373a1485233cf195e488e69133bac6.png b/frontend_management/test_result/auth/Register_Page_Tests/data/9efa2fbb70373a1485233cf195e488e69133bac6.png new file mode 100644 index 00000000..46ba6ab9 Binary files /dev/null and b/frontend_management/test_result/auth/Register_Page_Tests/data/9efa2fbb70373a1485233cf195e488e69133bac6.png differ diff --git a/frontend_management/test_result/auth/Register_Page_Tests/data/bd755655c173a8648e7d6d3c5b2f02a0946947fb.png b/frontend_management/test_result/auth/Register_Page_Tests/data/bd755655c173a8648e7d6d3c5b2f02a0946947fb.png new file mode 100644 index 00000000..2b55e310 Binary files /dev/null and b/frontend_management/test_result/auth/Register_Page_Tests/data/bd755655c173a8648e7d6d3c5b2f02a0946947fb.png differ diff --git a/frontend_management/test_result/auth/Register_Page_Tests/data/c95315ba929130c12a0cbd5bf9cb5d7f1cb08f5e.png b/frontend_management/test_result/auth/Register_Page_Tests/data/c95315ba929130c12a0cbd5bf9cb5d7f1cb08f5e.png new file mode 100644 index 00000000..619a5fc0 Binary files /dev/null and b/frontend_management/test_result/auth/Register_Page_Tests/data/c95315ba929130c12a0cbd5bf9cb5d7f1cb08f5e.png differ diff --git a/frontend_management/test_result/auth/Register_Page_Tests/data/efbfcc1bab4f46872473695bb589c80be175f811.png b/frontend_management/test_result/auth/Register_Page_Tests/data/efbfcc1bab4f46872473695bb589c80be175f811.png new file mode 100644 index 00000000..1d703012 Binary files /dev/null and b/frontend_management/test_result/auth/Register_Page_Tests/data/efbfcc1bab4f46872473695bb589c80be175f811.png differ diff --git a/frontend_management/test_result/auth/Register_Page_Tests/index.html b/frontend_management/test_result/auth/Register_Page_Tests/index.html new file mode 100644 index 00000000..1499aee9 --- /dev/null +++ b/frontend_management/test_result/auth/Register_Page_Tests/index.html @@ -0,0 +1,85 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + \ No newline at end of file diff --git a/frontend_management/tests/admin/categories.spec.ts b/frontend_management/tests/admin/categories.spec.ts index 3268d024..bc5da7c7 100644 --- a/frontend_management/tests/admin/categories.spec.ts +++ b/frontend_management/tests/admin/categories.spec.ts @@ -100,7 +100,7 @@ test.describe('Admin Categories', () => { await deleteBtn.click(); await page.waitForTimeout(500); - await page.getByRole('button', { name: 'OK' }).click(); + await page.getByRole('button', { name: 'ลบหมวดหมู่' }).click(); await page.waitForTimeout(500); await expect(page.locator('.q-notification').filter({ hasText: 'deleted' })).toBeVisible({ timeout: 10_000 }); }); diff --git a/frontend_management/tests/admin/recommended-courses.spec.ts b/frontend_management/tests/admin/recommended-courses.spec.ts index b3cd9ea9..5fe274f1 100644 --- a/frontend_management/tests/admin/recommended-courses.spec.ts +++ b/frontend_management/tests/admin/recommended-courses.spec.ts @@ -57,11 +57,7 @@ test.describe('Admin Recommended Courses', () => { await expect(page.getByText('รายละเอียด (Description)')).toBeVisible(); await expect(page.getByText('หมวดหมู่ (Category):')).toBeVisible(); await expect(page.getByText('ผู้สอน (Instructors)')).toBeVisible(); - - // Close dialog via close button in q-bar - await page.locator('.q-bar .q-btn').filter({ has: page.locator('[class*="q-icon"]') }).click(); - await page.waitForTimeout(300); - await expect(page.getByText('รายละเอียดคอร์ส (Course Details)')).not.toBeVisible(); + await page.waitForTimeout(1000); } }); }); diff --git a/frontend_management/tests/auth/login.spec.ts b/frontend_management/tests/auth/login.spec.ts index d5ea9a99..a664f5cc 100644 --- a/frontend_management/tests/auth/login.spec.ts +++ b/frontend_management/tests/auth/login.spec.ts @@ -24,6 +24,7 @@ test.describe('Login Page', () => { test('should show validation errors for empty fields', async ({ page }) => { // Click submit without filling fields await page.locator('button[type="submit"]').click(); + await page.waitForTimeout(1000); // Expect validation messages in Thai await expect(page.getByText('กรุณากรอกอีเมล')).toBeVisible(); @@ -31,8 +32,11 @@ test.describe('Login Page', () => { test('should show validation errors for empty fields password', async ({ page }) => { // Click submit without filling fields + await page.waitForTimeout(1000); await page.locator('input[type="email"]').fill('test@email.com'); + await page.waitForTimeout(1000); await page.locator('button[type="submit"]').click(); + await page.waitForTimeout(1000); // Expect validation messages in Thai await expect(page.getByText('กรุณากรอกรหัสผ่าน')).toBeVisible(); @@ -76,11 +80,13 @@ test.describe('Login Page', () => { }); test('should login as instructor and redirect to /instructor', async ({ page }) => { + await page.waitForTimeout(1000); await page.locator('input[type="email"]').fill(TEST_INSTRUCTOR.email); await page.waitForTimeout(1000); await page.locator('input[type="password"]').fill(TEST_INSTRUCTOR.password); await page.waitForTimeout(1000); await page.locator('button[type="submit"]').click(); + await page.waitForTimeout(1000); // Should redirect to instructor dashboard await page.waitForURL('**/instructor**', { timeout: 15_000 }); @@ -88,7 +94,9 @@ test.describe('Login Page', () => { }); test('should open forgot password modal', async ({ page }) => { + await page.waitForTimeout(1000); await page.getByText('ลืมรหัสผ่าน?').click(); + await page.waitForTimeout(1000); // Modal should be visible await expect(page.getByText('ลืมรหัสผ่าน').nth(1)).toBeVisible(); diff --git a/frontend_management/tests/instructor/course-detail-tabs.spec.ts b/frontend_management/tests/instructor/course-detail-tabs.spec.ts index fff2fce8..cac9ed49 100644 --- a/frontend_management/tests/instructor/course-detail-tabs.spec.ts +++ b/frontend_management/tests/instructor/course-detail-tabs.spec.ts @@ -53,15 +53,16 @@ test.describe.serial('Course Detail Tabs', () => { await expect(structureTab).toBeVisible(); // ตรวจสอบว่ามี chapters หรือ empty state - const hasChapters = await page.locator('.font-semibold').getByText(/^Chapter/).first().isVisible().catch(() => false); + await expect(page.getByText('โครงสร้างบทเรียน')).toBeVisible(); const hasEmptyState = await page.getByText('ยังไม่มีบทเรียน').isVisible().catch(() => false); + const hasChapters = !hasEmptyState && (await page.locator('.q-list.border-t').first().isVisible().catch(() => false)); expect(hasChapters || hasEmptyState).toBeTruthy(); // ถ้ามี chapters → กดเข้าดู lesson แรก if (hasChapters) { // หา lesson แรกใน structure tab แล้วกด - const firstLesson = page.locator('.q-item').filter({ hasText: /^Lesson/ }).first(); + const firstLesson = page.locator('.q-item').filter({ hasText: /Lesson \d/ }).first(); await expect(firstLesson).toBeVisible(); await firstLesson.click(); @@ -154,10 +155,6 @@ test.describe.serial('Course Detail Tabs', () => { // ตรวจสอบว่ามีผลลัพธ์ (dropdown options) หรือ "ไม่พบผู้ใช้" const hasResults = await page.locator('.q-menu .q-item').first().isVisible().catch(() => false); expect(hasResults).toBeTruthy(); - - // ปิด dialog - await dialog.getByRole('button', { name: 'ยกเลิก' }).click(); - await expect(dialog).toBeHidden({ timeout: 3_000 }); } }); @@ -251,7 +248,6 @@ test.describe.serial('Course Detail Tabs', () => { await expect(dialog.getByText('สร้างประกาศใหม่')).toBeVisible(); // กรอกหัวข้อ (ภาษาไทย) - await dialog.locator('input').filter({ has: page.locator('[aria-label="หัวข้อ (ภาษาไทย) *"]') }).first().click(); await dialog.getByLabel('หัวข้อ (ภาษาไทย) *').fill(announcementTitle); // กรอกหัวข้อ (English) diff --git a/frontend_management/tests/instructor/courses-list.spec.ts b/frontend_management/tests/instructor/courses-list.spec.ts index 854fac5a..453654c9 100644 --- a/frontend_management/tests/instructor/courses-list.spec.ts +++ b/frontend_management/tests/instructor/courses-list.spec.ts @@ -30,15 +30,10 @@ test.describe('Instructor Courses List', () => { await expect(searchInput).toBeVisible(); await searchInput.fill('JavaScript'); await page.waitForLoadState('networkidle'); + await page.waitForTimeout(1000); await expect(page.getByText('พื้นฐาน JavaScript', { exact: true })).toBeVisible(); }); - test('should have status filter dropdown', async ({ page }) => { - // Click the status select to open dropdown - const statusSelect = page.locator('.q-select').first(); - await expect(statusSelect).toBeVisible(); - }); - test('should toggle between card and table view', async ({ page }) => { // Switch to table view await page.locator('.q-btn-toggle button').last().click(); @@ -50,6 +45,7 @@ test.describe('Instructor Courses List', () => { // Table should have expected columns await expect(page.locator('thead').getByText('สถานะ')).toBeVisible(); await expect(page.locator('thead').getByText('ราคา')).toBeVisible(); + await page.waitForTimeout(1000); // Switch back to card view await page.locator('.q-btn-toggle button').first().click(); @@ -66,7 +62,7 @@ test.describe('Instructor Courses List', () => { }); test('should show course action menu', async ({ page }) => { - const moreBtn = page.locator('button:has(.q-icon[class*="more_vert"])').first(); + const moreBtn = page.locator('button').filter({ has: page.locator('.q-icon:has-text("more_vert")') }).first(); const hasCourses = await moreBtn.isVisible().catch(() => false); if (hasCourses) { @@ -75,11 +71,12 @@ test.describe('Instructor Courses List', () => { // Menu should show duplicate and delete options await expect(page.getByText('ทำสำเนา')).toBeVisible(); await expect(page.getByText('ลบ')).toBeVisible(); + await page.waitForTimeout(1000); } }); test('should open clone dialog from menu', async ({ page }) => { - const moreBtn = page.locator('button:has(.q-icon[class*="more_vert"])').first(); + const moreBtn = page.locator('button').filter({ has: page.locator('.q-icon:has-text("more_vert")') }).first(); const hasCourses = await moreBtn.isVisible().catch(() => false); if (hasCourses) { @@ -89,6 +86,7 @@ test.describe('Instructor Courses List', () => { // Clone dialog should appear await expect(page.getByText('ทำสำเนาหลักสูตร')).toBeVisible(); await expect(page.locator('.q-dialog input').first()).toBeVisible(); + await page.waitForTimeout(1000); } }); @@ -99,7 +97,7 @@ test.describe('Instructor Courses List', () => { await page.waitForLoadState('networkidle'); // If there are rejected courses, clicking view should show rejection dialog - const viewBtn = page.locator('button:has(.q-icon[class*="visibility"])').first(); + const viewBtn = page.locator('button').filter({ has: page.locator('.q-icon:has-text("visibility")') }).first(); const hasRejected = await viewBtn.isVisible().catch(() => false); if (hasRejected) { @@ -109,6 +107,7 @@ test.describe('Instructor Courses List', () => { await expect(page.getByText('หลักสูตรถูกปฏิเสธ')).toBeVisible(); await expect(page.getByText('เหตุผลการปฏิเสธ')).toBeVisible(); await expect(page.getByRole('button', { name: /คืนสถานะเป็นแบบร่าง/ })).toBeVisible(); + await page.waitForTimeout(1000); } }); }); diff --git a/frontend_management/utils/date.ts b/frontend_management/utils/date.ts new file mode 100644 index 00000000..1ce80cda --- /dev/null +++ b/frontend_management/utils/date.ts @@ -0,0 +1,33 @@ +/** + * Format a date string into Thai locale format (Date only) + * Example: 10 ม.ค. 67 + */ +export const formatDate = (date: string | Date | null | undefined): string => { + if (!date) return '-'; + + const d = typeof date === 'string' ? new Date(date) : date; + + return d.toLocaleDateString('th-TH', { + day: 'numeric', + month: 'short', + year: '2-digit' + }); +}; + +/** + * Format a date string into Thai locale format (Date and Time) + * Example: 10 ม.ค. 67 14:30 + */ +export const formatDateTime = (date: string | Date | null | undefined): string => { + if (!date) return '-'; + + const d = typeof date === 'string' ? new Date(date) : date; + + return d.toLocaleDateString('th-TH', { + day: 'numeric', + month: 'short', + year: '2-digit', + hour: '2-digit', + minute: '2-digit' + }); +};