@@ -50,20 +50,28 @@ const runTestCase = () => {
5050 requestLoading .value = true
5151 const name = props .name
5252 const suite = props .suite
53+ historyCaseID = props .historyCaseID
5354
55+ if (isHistoryTestCase .value == true ){
56+ RunHistoryTestCase (historyCaseID )
57+ } else {
58+ RunTestCase (name , suite )
59+ }
60+ }
61+
62+ function RunTestCase(name , suite ){
5463 API .RunTestCase ({
5564 suiteName: suite ,
5665 name: name ,
5766 parameters: parameters .value
58- }, (e ) => {
59- handleTestResult (e )
60- requestLoading .value = false
61- }, (e ) => {
62- parameters .value = []
67+ }, (e ) => {
68+ handleTestResult (e )
69+ requestLoading .value = false
70+ }, (e ) => {
71+ parameters .value = []
6372
6473 requestLoading .value = false
6574 UIAPI .ErrorTip (e )
66-
6775 parseResponseBody (e .body )
6876 })
6977}
@@ -81,29 +89,55 @@ const parseResponseBody = (body) => {
8189 }
8290}
8391
92+ function RunHistoryTestCase(historyCaseID : string ){
93+ API .RunHistoryTestCase ({
94+ historyCaseID : historyCaseID
95+ }, (e ) => {
96+ handleTestResultError (e )
97+ handleTestResult (e )
98+ requestLoading .value = false
99+ }, (e ) => {
100+ parameters .value = []
101+ requestLoading .value = false
102+ UIAPI .ErrorTip (e )
103+ testResult .value .bodyObject = JSON .parse (e .body )
104+ testResult .value .originBodyObject = JSON .parse (e .body )
105+ })
106+ }
107+
84108const handleTestResult = (e ) => {
85109 testResult .value = e ;
86110
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 )
111+ if (! isHistoryTestCase .value ) {
112+ handleTestResultError (e )
113+ }
114+
115+ if (e .body !== ' ' ) {
116+ testResult .value .bodyObject = JSON .parse (e .body );
117+ testResult .value .originBodyObject = JSON .parse (e .body );
118+ }
99119
100120 Cache .SetTestCaseResponseCache (suite + ' -' + name , {
101121 body: testResult .value .bodyObject ,
102122 output: e .output ,
103123 statusCode: testResult .value .statusCode
104124 } as TestCaseResponse )
105125
106- parameters .value = []
126+ parameters .value = [];
127+ }
128+
129+ const handleTestResultError = (e ) => {
130+ if (e .error !== ' ' ) {
131+ ElMessage ({
132+ message: e .error ,
133+ type: ' error'
134+ });
135+ } else {
136+ ElMessage ({
137+ message: ' Pass!' ,
138+ type: ' success'
139+ });
140+ }
107141}
108142
109143const responseBodyFilterText = ref (' ' )
@@ -213,6 +247,7 @@ let suite
213247let historySuiteName
214248let historyCaseID
215249const isHistoryTestCase = ref (false )
250+ const HistoryTestCaseCreateTime = ref (' ' )
216251
217252function load() {
218253 name = props .name
@@ -238,11 +273,12 @@ function load() {
238273
239274 if (historySuiteName != ' ' && historySuiteName != undefined ) {
240275 isHistoryTestCase .value = true
241- API .GetHistoryTestCase ({
276+ API .GetHistoryTestCaseWithResult ({
242277 historyCaseID : historyCaseID
243278 }, (e ) => {
244279 processResponse (e .data )
245280 handleTestResult (e .testCaseResult [0 ])
281+ formatDate (e .createTime )
246282 })
247283 } else {
248284 API .GetTestCase ({
@@ -254,6 +290,22 @@ function load() {
254290 }
255291}
256292
293+ function formatDate(createTimeStr : string ){
294+ let parts = createTimeStr .split (/ [T. Z] / );
295+ let datePart = parts [0 ].split (" -" );
296+ let timePart = parts [1 ].split (" :" );
297+
298+ let year = datePart [0 ];
299+ let month = datePart [1 ];
300+ let day = datePart [2 ];
301+ let hours = timePart [0 ];
302+ let minutes = timePart [1 ];
303+ let seconds = timePart [2 ].split (" ." )[0 ];
304+
305+ let formattedDate = ` ${year }-${month }-${day } ${hours }:${minutes }:${seconds } ` ;
306+ HistoryTestCaseCreateTime .value = formattedDate
307+ }
308+
257309function processResponse(e ) {
258310 if (e .request .method === ' ' ) {
259311 e .request .method = ' GET'
@@ -334,28 +386,40 @@ function saveTestCase(tip: boolean = true, callback: (c: any) => void) {
334386 }, UIAPI .ErrorTip , saveLoading )
335387}
336388
337- function deleteTestCase () {
389+ function deleteCase () {
338390 const name = props .name
339391 const suite = props .suite
392+ const historyCaseID = props .historyCaseID
393+
394+ if (isHistoryTestCase .value == true ){
395+ deleteHistoryTestCase (historyCaseID )
396+ } else {
397+ deleteTestCase (name , suite )
398+ }
399+ }
340400
341- API .DeleteTestCase ({
342- suiteName: suite ,
343- name: name
344- }, (e ) => {
345- if (e .ok ) {
346- emit (' updated' , ' hello from child' )
401+ function deleteHistoryTestCase(historyCaseID : string ){
402+ API .DeleteHistoryTestCase ({ historyCaseID }, handleDeleteResponse );
403+ }
347404
348- ElMessage ({
349- message: ' Delete.' ,
350- type: ' success'
351- })
405+ function deleteTestCase(name : string , suite : string ){
406+ API .DeleteTestCase ({ suiteName: suite , name }, handleDeleteResponse );
407+ }
352408
353- // clean all the values
354- testCaseWithSuite .value = emptyTestCaseWithSuite
355- } else {
356- UIAPI .ErrorTip (e )
357- }
358- })
409+ function handleDeleteResponse(e ) {
410+ if (e .ok ) {
411+ emit (' updated' , ' hello from child' );
412+
413+ ElMessage ({
414+ message: ' Delete.' ,
415+ type: ' success'
416+ });
417+
418+ // Clean all the values
419+ testCaseWithSuite .value = emptyTestCaseWithSuite ;
420+ } else {
421+ UIAPI .ErrorTip (e );
422+ }
359423}
360424
361425const codeDialogOpened = ref (false )
@@ -593,9 +657,10 @@ Magic.Keys(() => {
593657 <el-button type =" primary" @click =" saveTestCase" :icon =" Edit" :loading =" saveLoading"
594658 v-if =" !Cache.GetCurrentStore().readOnly && !isHistoryTestCase"
595659 >{{ t('button.save') }}</el-button >
596- <el-button type =" danger" @click =" deleteTestCase " :icon =" Delete" >{{ t('button.delete') }}</el-button >
660+ <el-button type =" danger" @click =" deleteCase " :icon =" Delete" >{{ t('button.delete') }}</el-button >
597661 <el-button type =" primary" @click =" openDuplicateTestCaseDialog" :icon =" CopyDocument" >{{ t('button.duplicate') }}</el-button >
598662 <el-button type =" primary" @click =" openCodeDialog" >{{ t('button.generateCode') }}</el-button >
663+ <span v-if =" isHistoryTestCase" style =" margin-left : 15px ;" >{{ t('tip.runningAt') }}{{ HistoryTestCaseCreateTime }}</span >
599664 </div >
600665 <div style =" display : flex ;" >
601666 <el-select
0 commit comments