diff --git a/src/App.vue b/src/App.vue index 9feede6..c8c4bfb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,6 +1,7 @@ @@ -13,24 +14,12 @@ import HeaderNavBar from "./components/HeaderNavBar.vue"; - - - Dexie.js - A Minimalistic Wrapper for IndexedDB - - - - © 2014-2024 - - Dexie.js - - is the creation of David Fahlander and managed by Awarica AB. - - + diff --git a/src/components/FooterComponent.vue b/src/components/FooterComponent.vue new file mode 100644 index 0000000..e94ae00 --- /dev/null +++ b/src/components/FooterComponent.vue @@ -0,0 +1,11 @@ + + + + YDIOY - Your Data Is Only Yours + + + + © 2025 + + + diff --git a/tests/components/FooterComponent.spec.ts b/tests/components/FooterComponent.spec.ts new file mode 100644 index 0000000..affc224 --- /dev/null +++ b/tests/components/FooterComponent.spec.ts @@ -0,0 +1,51 @@ +import { describe, it, expect, beforeEach } from "vitest"; +import { mount } from "@vue/test-utils"; +import { createVuetify } from "vuetify"; +import * as components from "vuetify/components"; +import * as directives from "vuetify/directives"; +import FooterComponent from "../../src/components/FooterComponent.vue"; + +global.ResizeObserver = require('resize-observer-polyfill'); + +const vuetify = createVuetify({ + components, + directives, +}) + +describe("FooterComponent", () => { + let wrapper: any; + + beforeEach(() => { + wrapper = mount({ + template: ` + + + + + + `, + }, { + global: { + components: { + FooterComponent, + }, + plugins: [vuetify] + } + }) + }); + + it("renders the component", () => { + expect(wrapper.exists()).toBe(true); + expect(wrapper.findComponent({ name: "VFooter" }).exists()).toBe(true); + }); + + it("has the correct content", () => { + expect(wrapper.findComponent({ name: "VFooter" }).findAll("div")).toHaveLength(2); + expect(wrapper.findComponent({ name: "VDivider"}).exists()).toBe(true); + }); + + it("contains current year", () => { + expect(wrapper.text()).toContain(new Date().getFullYear()); + }); + +});