Added more tests.

This commit is contained in:
Liviu Burcusel 2025-11-25 12:02:20 +01:00
parent 5a80d42af8
commit 90b4938bdb
Signed by: liviu
GPG key ID: 6CDB37A4AD2C610C
4 changed files with 68 additions and 6 deletions

49
tests/App.spec.ts Normal file
View file

@ -0,0 +1,49 @@
import { describe, expect, it } from "vitest";
import { mount, type VueWrapper } from "@vue/test-utils";
import { vuetify } from "./setup.vuetify";
import App from "~/App.vue";
describe("App.vue", () => {
const wrapper: VueWrapper = mount(App, {
global: {
plugins: [vuetify],
stubs: {
HeaderNavBar: true,
FooterComponent: true,
RouterView: true,
},
},
});
describe("Component Structure", () => {
it("renders the component", () => {
expect(wrapper.exists()).toBe(true);
});
it("renders v-app as the root element", () => {
expect(wrapper.find(".v-application").exists()).toBe(true);
});
it("renders HeaderNavBar component", () => {
expect(wrapper.findComponent({ name: "HeaderNavBar" }).exists()).toBe(true);
});
it("renders FooterComponent component", () => {
expect(wrapper.findComponent({ name: "FooterComponent" }).exists()).toBe(true);
});
it("renders v-main element", () => {
expect(wrapper.find(".v-main").exists()).toBe(true);
});
it("renders v-container inside v-main", () => {
const main = wrapper.find(".v-main");
expect(main.find(".v-container").exists()).toBe(true);
});
it("renders RouterView component", () => {
expect(wrapper.findComponent({ name: "RouterView" }).exists()).toBe(true);
});
});
});

10
tests/setup.vuetify.ts Normal file
View file

@ -0,0 +1,10 @@
import { createVuetify } from "vuetify";
import * as components from "vuetify/components";
import * as directives from "vuetify/directives";
const vuetify = createVuetify({
components,
directives,
});
export { vuetify };

View file

@ -1,10 +1,14 @@
{
"extends": "./tsconfig.app.json",
"include": ["tests/**/*.spec.ts", "env.d.ts", "src/**/*", "src/**/*.vue"],
"include": ["tests/**/*.ts", "env.d.ts", "src/**/*", "src/**/*.vue"],
"exclude": [],
"compilerOptions": {
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.vitest.tsbuildinfo",
"types": ["node", "happy-dom"]
},
"paths": {
"~/*": ["./src/*"],
"@/*": ["./src/*"]
}
}

View file

@ -9,12 +9,11 @@ export default mergeConfig(
environment: "happy-dom",
exclude: [...configDefaults.exclude, "e2e/**"],
root: fileURLToPath(new URL("./", import.meta.url)),
reporters: [
'default',
['vitest-sonar-reporter', { outputFile: 'coverage/sonar-report.xml' }],
],
setupFiles: ["./tests/setup.vuetify.ts"],
reporters: ["default", ["vitest-sonar-reporter", { outputFile: "coverage/sonar-report.xml" }]],
coverage: {
reporter: ["text", "lcov"],
exclude: [...(configDefaults.coverage.exclude || []), "**/*.css", "**/*.scss"],
},
server: {
deps: {
@ -22,5 +21,5 @@ export default mergeConfig(
},
},
},
}),
})
);