Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Support for Auto Grader Runner (queue based) in report.json #17

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions src/service/report-generator/report-generator.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,21 @@
import ReviewResult, {ReviewResultStatus} from "../../entities/review-result/course-submission-review/review-result";
import * as fs from "fs";

function itShouldMeetAGRSReportSpec(report: any): void {

Check warning on line 6 in src/service/report-generator/report-generator.test.ts

View workflow job for this annotation

GitHub Actions / lint (14.x)

Unexpected any. Specify a different type
expect(report.submission_id).toBeDefined()
expect(typeof report.submission_id).toEqual('number')
expect(report.message).toBeDefined()
expect(typeof report.message).toEqual('string')
expect(report.rating).toBeDefined()
expect(typeof report.rating).toEqual('number')
expect(report.is_passed).toBeDefined()
expect(typeof report.is_passed).toEqual('boolean')
expect(report.is_draft).toBeDefined()
expect(typeof report.is_draft).toEqual('boolean')
expect(report.checklist_keys).toBeDefined()
expect(Array.isArray(report.checklist_keys)).toEqual(true)
}

describe('checklist id resolver test', () => {
const reportGenerator = new ReportGenerator('./test/student/review-result/')

Expand All @@ -29,6 +44,10 @@

const result = JSON.parse(fs.readFileSync('./test/student/review-result/report.json').toString())[0]

// checking availability of property that used in auto grader runner (queue based)
itShouldMeetAGRSReportSpec(result)

// checking correctness of checklist keys
expect(result.checklist_keys).toEqual([
"project_have_correct_port",
"project_have_correct_runner_script",
Expand All @@ -38,6 +57,8 @@
"api_can_update_book",
"api_can_delete_book"
])

// checking correctness of message
expect(result.message).toStrictEqual('<p>Hallo <strong>snder12</strong>, terima kasih telah sabar menunggu. Kami membutuhkan waktu untuk bisa memberikan <em>feedback</em> sekomprehensif mungkin kepada setiap peserta kelas. Dalam kesempatan ini ada &nbsp;4 (empat) hal yang ingin kami sampaikan.&nbsp;</p><p><strong>Pertama</strong>, kami ingin mengucapkan selamat! Karena kamu telah menyelesaikan tugas submission dari kelas Belajar Membuat Aplikasi Back-End untuk Pemula. Jangan lihat bintang yang kamu raih, tapi lihat kemajuan yang sudah kamu capai. Ingat semua <em>expert&nbsp;</em>dahulu pemula.&nbsp;</p><p><strong>K</strong><strong>edua</strong>, kamu boleh bangga karena telah menyelesaikan submission sesuai dengan kriteria yang telah kami tentukan. Mumpung masih hangat semangatnya langsung lanjut kelas selanjutnya yaitu <a href="https://www.dicoding.com/academies/266">Architecting on AWS (Membangun Arsitektur AWS di Cloud)</a> atau <a href="https://www.dicoding.com/academies/271">Belajar Fundamental Aplikasi Back-End</a>.&nbsp;</p><p><strong>Ketiga</strong>, beberapa lulusan tidak tahu mereka memiliki akses kelas selamanya. Sebagai informasi kelas Dicoding selalu <em>update&nbsp;</em>sehingga memiliki perbedaan minimal 30% dari sejak kelas dirilis. Silakan mampir kembali untuk melihat materi saat kamu membutuhkan <em>update</em>.&nbsp;</p><p><strong>K</strong><strong>eempat</strong>, karena sudah praktik langsung maka kamu sudah menguasai ilmu kelas dasar ini antara 75-90%. Salah satu cara agar meningkatkan penguasaan ilmu agar bisa lebih maksimal (&gt;90%) adalah dengan memperbanyak latihan atau mengajarkan ilmu kepada orang lain.</p><p>Salah satu misi Dicoding adalah menyebarkan ilmu yang bermanfaat. Kami berusaha membangun kurikulum standar global dengan harapan agar developer Indonesia bisa menjadi jawara di negeri sendiri. Namun misi ini tidak akan tercapai tanpa kolaborasi dari kita semua.</p><hr><p>Supaya aplikasimu menjadi lebih baik lagi, berikut <em>beberapa</em> <em>catatan</em> terkait submission kamu:</p><ul>Selamat</ul><hr><p>Silakan berkunjung ke <a href="https://www.dicoding.com/academies/261/discussions">academy discussion</a> untuk mengasah penguasaan ilmu kamu dan membuat ilmu yang kamu dapatkan bisa semakin berkah dan bermanfaat dengan membantu kawan-kawan kita yang saat ini masih berjuang.</p><p>Terima kasih telah membantu misi kami. Kesuksesan developer Indonesia adalah energi bagi kami. Jika memiliki pertanyaan atau saran terkait kelas, silakan email ke <a href="mailto:%20academy@dicoding.com" rel="noreferrer noopener" target="_blank">academy@dicoding.com</a>.</p><hr><p style="text-align:right;"><em>Salam</em></p><p style="text-align:right;"><span style="color:rgb(226,80,65);">Dicoding Reviewer</span></p>')
});
})
Expand Down
4 changes: 3 additions & 1 deletion src/service/report-generator/report-generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@
message: this.getReviewMessageWithTemplate(reviewResult, autoReviewConfig),
submission_path: submissionPath,
checklist: reviewResult.checklist,
checklist_keys: this.getCompletedChecklist(reviewResult)
checklist_keys: this.getCompletedChecklist(reviewResult),
is_passed: isApproved,
is_draft: true,
};

this.result.push(summary);
Expand Down Expand Up @@ -63,7 +65,7 @@
}


private getAutoReviewConfig(projectPath: string): any | null {

Check warning on line 68 in src/service/report-generator/report-generator.ts

View workflow job for this annotation

GitHub Actions / lint (14.x)

Unexpected any. Specify a different type

const configFilePath = `${projectPath}/auto-review-config.json`
if (!existsSync(configFilePath)) {
Expand Down
Loading