1
0
Fork 0
mirror of https://github.com/mealie-recipes/mealie.git synced 2025-08-05 13:35:23 +02:00

chore: frontend testing setup (#1739)

* add vitest

* initialize lib w/ tests

* move to dev dep

* run tests in CI

* update file names

* move api folder to lib

* move api and api types to same folder

* update generator outpath

* rm husky

* i guess i _did_ need those types

* reorg types

* extract validators into testable components

* (WIP) start composable testing

* fix import type

* fix linter complaint

* simplify icon type def

* fix linter errors (maybe?)

* rename client file for sorting
This commit is contained in:
Hayden 2022-10-22 11:51:07 -08:00 committed by GitHub
parent 9f6bcc83d5
commit fcc5d99d40
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
182 changed files with 902 additions and 487 deletions

View file

@ -43,7 +43,7 @@
import { defineComponent, reactive, useAsync } from "@nuxtjs/composition-api";
import { useAdminApi } from "~/composables/api";
import { useAsyncKey } from "~/composables/use-utils";
import { MealieAnalytics } from "~/types/api-types/analytics";
import { MealieAnalytics } from "~/lib/api/types/analytics";
type DisplayData = {
text: string;

View file

@ -41,7 +41,7 @@
<script lang="ts">
import { defineComponent, onMounted, ref } from "@nuxtjs/composition-api";
import { ServerTask } from "~/types/api-types/server";
import { ServerTask } from "~/lib/api/types/server";
import { useAdminApi } from "~/composables/api";
export default defineComponent({

View file

@ -117,7 +117,7 @@
import { defineComponent, reactive, ref, toRefs, useContext } from "@nuxtjs/composition-api";
import { onMounted } from "vue-demi";
import { useAdminApi } from "~/composables/api";
import { AllBackups } from "~/types/api-types/admin";
import { AllBackups } from "~/lib/api/types/admin";
export default defineComponent({
layout: "admin",

View file

@ -75,7 +75,7 @@
<script lang="ts">
import { computed, ref, defineComponent, reactive } from "@nuxtjs/composition-api";
import { useAdminApi } from "~/composables/api";
import { MaintenanceStorageDetails, MaintenanceSummary } from "~/types/api-types/admin";
import { MaintenanceStorageDetails, MaintenanceSummary } from "~/lib/api/types/admin";
export default defineComponent({
layout: "admin",

View file

@ -28,7 +28,7 @@ import { defineComponent, useRoute, onMounted, ref } from "@nuxtjs/composition-a
import GroupPreferencesEditor from "~/components/Domain/Group/GroupPreferencesEditor.vue";
import { useAdminApi } from "~/composables/api";
import { alert } from "~/composables/use-toast";
import { GroupInDB } from "~/types/api-types/user";
import { GroupInDB } from "~/lib/api/types/user";
import { VForm } from "~/types/vuetify";
export default defineComponent({

View file

@ -73,7 +73,7 @@
import { defineComponent, reactive, toRefs, useContext, useRouter } from "@nuxtjs/composition-api";
import { fieldTypes } from "~/composables/forms";
import { useGroups } from "~/composables/use-groups";
import { GroupInDB } from "~/types/api-types/user";
import { GroupInDB } from "~/lib/api/types/user";
export default defineComponent({
layout: "admin",

View file

@ -45,7 +45,7 @@ import { alert } from "~/composables/use-toast";
import { useUserForm } from "~/composables/use-users";
import { validators } from "~/composables/use-validators";
import { VForm } from "~/types/vuetify";
import { UserOut } from "~/types/api-types/user";
import { UserOut } from "~/lib/api/types/user";
export default defineComponent({
layout: "admin",

View file

@ -69,7 +69,7 @@ import { defineComponent, reactive, ref, toRefs, useContext, useRouter } from "@
import { useAdminApi } from "~/composables/api";
import { alert } from "~/composables/use-toast";
import { useUser, useAllUsers } from "~/composables/use-user";
import { UserOut } from "~/types/api-types/user";
import { UserOut } from "~/lib/api/types/user";
export default defineComponent({
layout: "admin",

View file

@ -68,9 +68,9 @@
<script lang="ts">
import { defineComponent, reactive, ref, toRefs } from "@nuxtjs/composition-api";
import { Parser } from "~/api/class-interfaces/recipes/recipe";
import { IngredientConfidence } from "~/types/api-types/recipe";
import { IngredientConfidence } from "~/lib/api/types/recipe";
import { useUserApi } from "~/composables/api";
import { Parser } from "~/lib/api/user/recipes/recipe";
type ConfidenceAttribute = "average" | "comment" | "name" | "unit" | "quantity" | "food";
@ -90,8 +90,7 @@ export default defineComponent({
function getColor(attribute: ConfidenceAttribute) {
const percentage = getConfidence(attribute);
if (percentage === undefined)
return;
if (percentage === undefined) return;
const p_as_num = parseFloat(percentage.replace("%", ""));
@ -142,8 +141,7 @@ export default defineComponent({
if (data) {
state.results = true;
if (data.confidence)
confidence.value = data.confidence;
if (data.confidence) confidence.value = data.confidence;
// TODO: Remove ts-ignore
// ts-ignore because data will likely change significantly once I figure out how to return results
@ -153,7 +151,7 @@ export default defineComponent({
properties.unit.value = data.ingredient?.unit?.name || "";
properties.food.value = data.ingredient?.food?.name || "";
(["comment", "quantity", "unit", "food"] as ConfidenceAttribute[]).forEach(property => {
(["comment", "quantity", "unit", "food"] as ConfidenceAttribute[]).forEach((property) => {
const color = getColor(property);
const confidence = getConfidence(property);
if (color) {
@ -218,5 +216,4 @@ export default defineComponent({
});
</script>
<style scoped>
</style>
<style scoped></style>

View file

@ -179,7 +179,7 @@ import {
import { useAdminApi, useUserApi } from "~/composables/api";
import { validators } from "~/composables/use-validators";
import { useAsyncKey } from "~/composables/use-utils";
import { CheckAppConfig } from "~/types/api-types/admin";
import { CheckAppConfig } from "~/lib/api/types/admin";
enum DockerVolumeState {
Unknown = "unknown",
@ -259,7 +259,7 @@ export default defineComponent({
const { data } = await adminApi.about.checkApp();
if (data) {
appConfig.value = { ...data, isSiteSecure: false};
appConfig.value = { ...data, isSiteSecure: false };
}
appConfig.value.isSiteSecure = isLocalHostOrHttps();