@@ -50,7 +50,6 @@ const runTestCase = () => {
5050 requestLoading .value = true
5151 const name = props .name
5252 const suite = props .suite
53-
5453 API .RunTestCase ({
5554 suiteName: suite ,
5655 name: name ,
@@ -63,7 +62,6 @@ const runTestCase = () => {
6362
6463 requestLoading .value = false
6564 UIAPI .ErrorTip (e )
66-
6765 parseResponseBody (e .body )
6866 })
6967}
@@ -84,26 +82,36 @@ const parseResponseBody = (body) => {
8482const handleTestResult = (e ) => {
8583 testResult .value = e ;
8684
87- if (e .error !== ' ' ) {
88- ElMessage ({
89- message: e .error ,
90- type: ' error'
91- })
92- } else {
93- ElMessage ({
94- message: ' Pass!' ,
95- type: ' success'
96- })
97- }
98- parseResponseBody (e .body )
85+ if (! isHistoryTestCase .value ) {
86+ handleTestResultError (e )
87+ }
88+
89+ if (e .body !== ' ' ) {
90+ testResult .value .bodyObject = JSON .parse (e .body );
91+ testResult .value .originBodyObject = JSON .parse (e .body );
92+ }
9993
10094 Cache .SetTestCaseResponseCache (suite + ' -' + name , {
10195 body: testResult .value .bodyObject ,
10296 output: e .output ,
10397 statusCode: testResult .value .statusCode
10498 } as TestCaseResponse )
10599
106- parameters .value = []
100+ parameters .value = [];
101+ }
102+
103+ const handleTestResultError = (e ) => {
104+ if (e .error !== ' ' ) {
105+ ElMessage ({
106+ message: e .error ,
107+ type: ' error'
108+ });
109+ } else {
110+ ElMessage ({
111+ message: ' Pass!' ,
112+ type: ' success'
113+ });
114+ }
107115}
108116
109117const responseBodyFilterText = ref (' ' )
@@ -213,6 +221,7 @@ let suite
213221let historySuiteName
214222let historyCaseID
215223const isHistoryTestCase = ref (false )
224+ const HistoryTestCaseCreateTime = ref (' ' )
216225
217226function load() {
218227 name = props .name
@@ -238,11 +247,12 @@ function load() {
238247
239248 if (historySuiteName != ' ' && historySuiteName != undefined ) {
240249 isHistoryTestCase .value = true
241- API .GetHistoryTestCase ({
250+ API .GetHistoryTestCaseWithResult ({
242251 historyCaseID : historyCaseID
243252 }, (e ) => {
244253 processResponse (e .data )
245254 handleTestResult (e .testCaseResult [0 ])
255+ formatDate (e .createTime )
246256 })
247257 } else {
248258 API .GetTestCase ({
@@ -254,6 +264,22 @@ function load() {
254264 }
255265}
256266
267+ function formatDate(createTimeStr : string ){
268+ let parts = createTimeStr .split (/ [T. Z] / );
269+ let datePart = parts [0 ].split (" -" );
270+ let timePart = parts [1 ].split (" :" );
271+
272+ let year = datePart [0 ];
273+ let month = datePart [1 ];
274+ let day = datePart [2 ];
275+ let hours = timePart [0 ];
276+ let minutes = timePart [1 ];
277+ let seconds = timePart [2 ].split (" ." )[0 ];
278+
279+ let formattedDate = ` ${year }-${month }-${day } ${hours }:${minutes }:${seconds } ` ;
280+ HistoryTestCaseCreateTime .value = formattedDate
281+ }
282+
257283function processResponse(e ) {
258284 if (e .request .method === ' ' ) {
259285 e .request .method = ' GET'
@@ -334,28 +360,40 @@ function saveTestCase(tip: boolean = true, callback: (c: any) => void) {
334360 }, UIAPI .ErrorTip , saveLoading )
335361}
336362
337- function deleteTestCase () {
363+ function deleteCase () {
338364 const name = props .name
339365 const suite = props .suite
366+ const historyCaseID = props .historyCaseID
340367
341- API . DeleteTestCase ( {
342- suiteName: suite ,
343- name: name
344- }, ( e ) => {
345- if ( e . ok ) {
346- emit ( ' updated ' , ' hello from child ' )
368+ if ( isHistoryTestCase . value == true ) {
369+ deleteHistoryTestCase ( historyCaseID )
370+ } else {
371+ deleteTestCase ( name , suite )
372+ }
373+ }
347374
348- ElMessage ({
349- message: ' Delete.' ,
350- type: ' success'
351- })
375+ function deleteHistoryTestCase(historyCaseID : string ){
376+ API .DeleteHistoryTestCase ({ historyCaseID }, handleDeleteResponse );
377+ }
352378
353- // clean all the values
354- testCaseWithSuite .value = emptyTestCaseWithSuite
355- } else {
356- UIAPI .ErrorTip (e )
357- }
358- })
379+ function deleteTestCase(name : string , suite : string ){
380+ API .DeleteTestCase ({ suiteName: suite , name }, handleDeleteResponse );
381+ }
382+
383+ function handleDeleteResponse(e ) {
384+ if (e .ok ) {
385+ emit (' updated' , ' hello from child' );
386+
387+ ElMessage ({
388+ message: ' Delete.' ,
389+ type: ' success'
390+ });
391+
392+ // Clean all the values
393+ testCaseWithSuite .value = emptyTestCaseWithSuite ;
394+ } else {
395+ UIAPI .ErrorTip (e );
396+ }
359397}
360398
361399const codeDialogOpened = ref (false )
@@ -593,9 +631,10 @@ Magic.Keys(() => {
593631 <el-button type =" primary" @click =" saveTestCase" :icon =" Edit" :loading =" saveLoading"
594632 v-if =" !Cache.GetCurrentStore().readOnly && !isHistoryTestCase"
595633 >{{ t('button.save') }}</el-button >
596- <el-button type =" danger" @click =" deleteTestCase " :icon =" Delete" >{{ t('button.delete') }}</el-button >
634+ <el-button type =" danger" @click =" deleteCase " :icon =" Delete" >{{ t('button.delete') }}</el-button >
597635 <el-button type =" primary" @click =" openDuplicateTestCaseDialog" :icon =" CopyDocument" >{{ t('button.duplicate') }}</el-button >
598636 <el-button type =" primary" @click =" openCodeDialog" >{{ t('button.generateCode') }}</el-button >
637+ <span v-if =" isHistoryTestCase" style =" margin-left : 15px ;" >{{ t('tip.runningAt') }}{{ HistoryTestCaseCreateTime }}</span >
599638 </div >
600639 <div style =" display : flex ;" >
601640 <el-select
@@ -703,7 +742,7 @@ Magic.Keys(() => {
703742 <el-table-column label =" Key" >
704743 <template #default =" scope " >
705744 <el-input v-model =" scope.row.key" placeholder =" Key"
706- @change =" cookieChange"
745+ @change =" cookieChange"
707746 />
708747 </template >
709748 </el-table-column >
0 commit comments