We should add more tests to the front-end.
Coverage as of 2023-06-02:
--------------------------------------------------------|---------|----------|---------|---------|----------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s --------------------------------------------------------|---------|----------|---------|---------|----------------------- All files | 82.05 | 74.72 | 85.13 | 82.05 | ext.wikilambda.edit | 87.17 | 100 | 0 | 87.17 | Constants.js | 100 | 100 | 100 | 100 | index.js | 0 | 100 | 0 | 0 | 9-15 ext.wikilambda.edit/components | 61.9 | 55.73 | 73.46 | 61.9 | App.vue | 77.27 | 50 | 66.66 | 77.27 | 97-106 ZObjectJson.vue | 67.5 | 62.5 | 76.92 | 67.5 | 37,90,95,120-141 ZObjectSelector.vue | 56.6 | 55.1 | 73.33 | 56.6 | ...91,503,530-540,551 ext.wikilambda.edit/components/base | 83.63 | 68.75 | 77.77 | 83.63 | ContextMenu.vue | 64.28 | 100 | 33.33 | 64.28 | 54,62-63,82-85 TextInput.vue | 89.74 | 68.75 | 100 | 89.74 | 127,138,203-204 WidgetBase.vue | 100 | 100 | 100 | 100 | ext.wikilambda.edit/components/default-view-types | 85.68 | 74.28 | 86.3 | 85.68 | ZBoolean.vue | 100 | 100 | 100 | 100 | ZCode.vue | 78 | 47.36 | 82.35 | 78 | 171-172,202-231,280 ZEvaluationResult.vue | 67.56 | 75 | 60 | 67.56 | 210-282 ZFunctionCall.vue | 100 | 100 | 100 | 100 | ZImplementation.vue | 88.23 | 66.66 | 90.9 | 88.23 | 131-132 ZMonolingualString.vue | 100 | 50 | 100 | 100 | 118 ZObjectKeyValue.vue | 82.11 | 74.16 | 84.61 | 82.11 | ...66-671,680,704-723 ZObjectKeyValueSet.vue | 100 | 100 | 100 | 100 | ZObjectToString.vue | 100 | 90.47 | 100 | 100 | 155,194 ZObjectType.vue | 100 | 100 | 100 | 100 | ZReference.vue | 100 | 66.66 | 100 | 100 | 86-105 ZString.vue | 100 | 100 | 100 | 100 | ZTester.vue | 100 | 50 | 100 | 100 | 73-93 ZTypedList.vue | 81.81 | 60 | 90.9 | 81.81 | 180,186-188 ZTypedListItem.vue | 88.88 | 100 | 75 | 88.88 | 93 ZTypedListType.vue | 78.57 | 100 | 66.66 | 78.57 | 72-83 ext.wikilambda.edit/components/function | 85.71 | 75 | 81.81 | 85.71 | ZFunctionTesterTable.vue | 85.71 | 75 | 81.81 | 85.71 | 79,129-139 ext.wikilambda.edit/components/function/editor | 91.07 | 83.33 | 88.13 | 90.96 | FunctionEditorAliases.vue | 91.83 | 100 | 93.33 | 91.66 | 195-201 FunctionEditorDefinition.vue | 90.09 | 87.5 | 92.3 | 90 | ...81-386,434,438,454 FunctionEditorFooter.vue | 100 | 100 | 100 | 100 | FunctionEditorInputs.vue | 96.15 | 83.33 | 93.33 | 96.15 | 201 FunctionEditorInputsItem.vue | 86.36 | 60 | 72.22 | 86.15 | ...44,290,305-313,326 FunctionEditorLanguage.vue | 90.47 | 83.33 | 80 | 90.24 | 76,94-95,168 FunctionEditorName.vue | 95.83 | 100 | 88.88 | 95.83 | 75 FunctionEditorOutput.vue | 100 | 100 | 100 | 100 | ext.wikilambda.edit/components/function/viewer | 93.24 | 96.61 | 86.88 | 93.19 | FunctionViewerAbout.vue | 100 | 100 | 100 | 100 | FunctionViewerDetails.vue | 92.12 | 96.42 | 85.45 | 92.06 | ...46,460,476,492,514 FunctionViewerSidebar.vue | 100 | 100 | 100 | 100 | ext.wikilambda.edit/components/function/viewer/about | 94.89 | 79.31 | 96.55 | 94.89 | FunctionViewerAboutAliases.vue | 100 | 100 | 100 | 100 | FunctionViewerAboutDetails.vue | 100 | 100 | 100 | 100 | FunctionViewerAboutExamples.vue | 90.9 | 60 | 100 | 90.9 | 61 FunctionViewerAboutNames.vue | 86.66 | 55.55 | 88.88 | 86.66 | 54,105,111,117 ext.wikilambda.edit/components/function/viewer/details | 75.89 | 67.85 | 68.57 | 75.89 | FunctionViewerDetailsSidebar.vue | 76.54 | 67.85 | 75 | 76.54 | ...78,396-402,423,429 FunctionViewerDetailsTable.vue | 86.66 | 100 | 71.42 | 86.66 | 139-142 ZMetadataDialog.vue | 62.5 | 100 | 25 | 62.5 | 95-106 ext.wikilambda.edit/components/widgets | 73.47 | 58.99 | 77.84 | 73.47 | About.vue | 100 | 55.55 | 100 | 100 | 230-316 AboutEditMetadataDialog.vue | 70.37 | 58.62 | 82.85 | 70.37 | ...00,515-518,539-579 AboutViewLanguagesDialog.vue | 46.8 | 25 | 60 | 46.8 | 222,240-316 FunctionEvaluator.vue | 80 | 85.71 | 84.21 | 80 | 184-196 FunctionExplorer.vue | 41.81 | 11.11 | 34.78 | 41.81 | ...76,294,313-317,322 FunctionReport.vue | 81.63 | 58 | 81.81 | 81.63 | ...58,168,174,202-212 FunctionReportItem.vue | 97.22 | 100 | 90.9 | 97.22 | 141 Publish.vue | 100 | 100 | 100 | 100 | PublishDialog.vue | 93.75 | 33.33 | 100 | 93.75 | 160,174 ext.wikilambda.edit/composables | 100 | 100 | 100 | 100 | useBreakpoints.js | 100 | 100 | 100 | 100 | ext.wikilambda.edit/mixins | 66.51 | 73.93 | 80.28 | 66.74 | api.js | 93.33 | 75 | 83.33 | 93.33 | 53 portray.js | 4.38 | 0 | 0 | 4.42 | 48-317 schemata.js | 85.48 | 82.67 | 90 | 86.06 | 48-62,83,176-190,270 typeUtils.js | 90 | 89.53 | 100 | 90 | ...57,465,566,696-712 urlUtils.js | 88.88 | 75 | 100 | 88.88 | 18 validator.js | 30.76 | 0 | 50 | 30.76 | 27-32,46-54 zobjectTreeUtils.js | 100 | 100 | 100 | 100 | ext.wikilambda.edit/store | 95.45 | 100 | 71.42 | 95.34 | actions.js | 100 | 100 | 100 | 100 | getters.js | 94.44 | 100 | 80 | 94.11 | 34 index.js | 100 | 100 | 100 | 100 | mutations.js | 100 | 100 | 100 | 100 | state.js | 50 | 100 | 0 | 50 | 20 ext.wikilambda.edit/store/classes | 92.3 | 100 | 80 | 92.3 | LabelData.js | 100 | 100 | 100 | 100 | Row.js | 88.88 | 100 | 75 | 88.88 | 61 ext.wikilambda.edit/store/modules | 84.94 | 75.75 | 90.47 | 84.95 | arguments.js | 85.71 | 83.33 | 90.9 | 85.71 | ...03,133-134,159-160 callZFunction.js | 100 | 100 | 100 | 100 | errors.js | 100 | 100 | 100 | 100 | languages.js | 100 | 100 | 100 | 100 | programmingLanguages.js | 57.14 | 100 | 66.66 | 57.14 | 49-79 router.js | 100 | 100 | 100 | 100 | zImplementations.js | 100 | 100 | 100 | 100 | zKeys.js | 97.32 | 78.18 | 100 | 97.32 | 323,337,376 zTesterResults.js | 93.93 | 78.43 | 95.23 | 93.93 | 36,57,243,274 zTesters.js | 20.54 | 0 | 36.84 | 20.83 | ...5-48,57-60,108-262 zTypedList.js | 21.05 | 3.7 | 28.57 | 21.05 | 13-20,63-127,157-268 zobject.js | 91.45 | 80.5 | 95.79 | 91.4 | ...483,2574-2584,2982 zobjectModes.js | 100 | 100 | 100 | 100 | ext.wikilambda.edit/store/modules/zobject | 95.23 | 86.61 | 98.38 | 95.21 | addZObjects.js | 96.45 | 91.02 | 97.56 | 96.42 | 73,579-584 currentZObject.js | 92.75 | 81.25 | 100 | 92.75 | 166,203-205,214-216 ext.wikilambda.edit/views | 57.5 | 7.14 | 30.76 | 57.5 | DefaultView.vue | 34.61 | 0 | 0 | 34.61 | 93-181 FunctionEditor.vue | 100 | 100 | 100 | 100 | FunctionViewer.vue | 100 | 100 | 100 | 100 | --------------------------------------------------------|---------|----------|---------|---------|-----------------------