From 356714c88946dc4229832d9cc236183e68b0fe7a Mon Sep 17 00:00:00 2001 From: joonas Date: Sun, 16 Feb 2025 14:03:22 +0900 Subject: [PATCH] feat(compile): add exception when no testcase --- src/js/features/compile.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/js/features/compile.js b/src/js/features/compile.js index 2b56ba8d..33a48857 100644 --- a/src/js/features/compile.js +++ b/src/js/features/compile.js @@ -88,13 +88,9 @@ function extendCompile() { class: 'col-md-offset-2 col-md-10', style: 'margin-top: 1em', }); - const resultPreBox = Utils.createElement('pre', { - style: 'display: none', - }); const resultPanels = Utils.createElement('div', { class: 'panel panel-default', }); - resultWrapper.appendChild(resultPreBox); resultWrapper.appendChild(resultPanels); formGroup.appendChild(resultWrapper); @@ -131,7 +127,7 @@ function extendCompile() { testButton.textContent = '테스트 (beta)'; testButton.addEventListener('click', async (evt) => { evt.preventDefault(); - console.log('Ready to compile'); + console.log('Click to compile and test'); // initialize and fetch problem examples if (resultPanels.childElementCount === 0) { fetchExamples() @@ -145,7 +141,13 @@ function extendCompile() { tcController[tc] = { head, body, input, output }; } }) - .then(runTestAll); + .then(runTestAll) + .catch(({ message }) => { + const element = document.createElement('pre'); + element.textContent = message; + resultWrapper.innerHTML = ''; + resultWrapper.appendChild(element); + }); } else { // ui is ready runTestAll(); @@ -197,7 +199,11 @@ function extendCompile() { } } - resolve(testCases); + if (!testCases || testCases.length === 0) { + reject(new Error('No example to test')); + } else { + resolve(testCases); + } function parseTestSampleById(id) { const pre = doc.getElementById(id);