1- import {
2- describe ,
3- it ,
4- expect ,
5- beforeAll ,
6- afterAll ,
7- beforeEach ,
8- vi ,
9- } from "vitest" ;
10- import { mount } from "@vue/test-utils" ;
11- import { createPinia , setActivePinia } from "pinia" ;
12- import ExportBtn from "@/components/ExportBtn.vue" ;
13- import { useStore } from "@/stores/store" ;
1+ import { describe , it , expect , beforeAll , afterAll , beforeEach , vi } from 'vitest' ;
2+ import { mount } from '@vue/test-utils' ;
3+ import { createPinia , setActivePinia } from 'pinia' ;
4+ import ExportBtn from '@/components/ExportBtn.vue' ;
5+ import { useStore } from '@/stores/store' ;
146
157const domToImageMock = vi . hoisted ( ( ) => ( {
16- toPng : vi . fn ( ( ) => Promise . resolve ( " data:image/png;base64,mock" ) ) ,
17- toSvg : vi . fn ( ( ) => Promise . resolve ( " data:image/svg+xml,mock" ) ) ,
8+ toPng : vi . fn ( ( ) => Promise . resolve ( ' data:image/png;base64,mock' ) ) ,
9+ toSvg : vi . fn ( ( ) => Promise . resolve ( ' data:image/svg+xml,mock' ) )
1810} ) ) ;
1911
2012const onClickOutsideMock = vi . hoisted ( ( ) => vi . fn ( ( _ , handler ) => handler ( ) ) ) ;
2113
22- vi . mock ( " dom-to-image" , ( ) => ( {
14+ vi . mock ( ' dom-to-image' , ( ) => ( {
2315 __esModule : true ,
24- default : domToImageMock ,
16+ default : domToImageMock
2517} ) ) ;
2618
27- vi . mock ( " @vueuse/core" , ( ) => ( {
28- onClickOutside : onClickOutsideMock ,
19+ vi . mock ( ' @vueuse/core' , ( ) => ( {
20+ onClickOutside : onClickOutsideMock
2921} ) ) ;
30- describe ( " ExportBtn" , ( ) => {
22+ describe ( ' ExportBtn' , ( ) => {
3123 let OriginalImage ;
3224 let clickSpy ;
3325
@@ -50,9 +42,7 @@ describe("ExportBtn", () => {
5042 this . _onload ?. ( ) ;
5143 }
5244 } ;
53- clickSpy = vi
54- . spyOn ( window . HTMLAnchorElement . prototype , "click" )
55- . mockImplementation ( ( ) => { } ) ;
45+ clickSpy = vi . spyOn ( window . HTMLAnchorElement . prototype , 'click' ) . mockImplementation ( ( ) => { } ) ;
5646 } ) ;
5747
5848 afterAll ( ( ) => {
@@ -71,60 +61,53 @@ describe("ExportBtn", () => {
7161 const mountButton = ( ) => mount ( ExportBtn ) ;
7262 const flush = ( ) => new Promise ( ( resolve ) => setTimeout ( resolve ) ) ;
7363
74- it ( " exports the editable area as PNG" , async ( ) => {
64+ it ( ' exports the editable area as PNG' , async ( ) => {
7565 const store = useStore ( ) ;
76- store . prefix = " Porn" ;
77- store . suffix = " hub" ;
66+ store . prefix = ' Porn' ;
67+ store . suffix = ' hub' ;
7868 const wrapper = mountButton ( ) ;
7969
80- await wrapper . find ( '[value="png"]' ) . trigger ( "click" ) ;
81- expect ( domToImageMock . toPng ) . toHaveBeenCalledWith (
82- document . getElementById ( "logo" ) ,
83- ) ;
70+ await wrapper . find ( '[value="png"]' ) . trigger ( 'click' ) ;
71+ expect ( domToImageMock . toPng ) . toHaveBeenCalledWith ( document . getElementById ( 'logo' ) ) ;
8472
8573 await flush ( ) ;
8674
8775 expect ( store . editable ) . toBe ( true ) ;
8876 expect ( onClickOutsideMock ) . toHaveBeenCalled ( ) ;
8977 } ) ;
9078
91- it ( " exports the editable area as SVG" , async ( ) => {
79+ it ( ' exports the editable area as SVG' , async ( ) => {
9280 const store = useStore ( ) ;
93- store . prefix = " Only" ;
94- store . suffix = " Fans" ;
81+ store . prefix = ' Only' ;
82+ store . suffix = ' Fans' ;
9583 const wrapper = mountButton ( ) ;
9684
97- await wrapper . find ( '[value="svg"]' ) . trigger ( "click" ) ;
98- expect ( domToImageMock . toSvg ) . toHaveBeenCalledWith (
99- document . getElementById ( "logo" ) ,
100- ) ;
85+ await wrapper . find ( '[value="svg"]' ) . trigger ( 'click' ) ;
86+ expect ( domToImageMock . toSvg ) . toHaveBeenCalledWith ( document . getElementById ( 'logo' ) ) ;
10187
10288 await flush ( ) ;
10389
10490 expect ( clickSpy ) . toHaveBeenCalled ( ) ;
10591 expect ( store . editable ) . toBe ( true ) ;
10692 } ) ;
10793
108- it ( " skips exporting when the logo node is missing" , async ( ) => {
109- document . body . innerHTML = "" ;
94+ it ( ' skips exporting when the logo node is missing' , async ( ) => {
95+ document . body . innerHTML = '' ;
11096 setActivePinia ( createPinia ( ) ) ;
11197 const wrapper = mountButton ( ) ;
11298
113- await wrapper . find ( '[value="png"]' ) . trigger ( " click" ) ;
99+ await wrapper . find ( '[value="png"]' ) . trigger ( ' click' ) ;
114100
115101 expect ( domToImageMock . toPng ) . not . toHaveBeenCalled ( ) ;
116102 } ) ;
117103
118- it ( "falls back to the default filename when none is provided" , ( ) => {
119- const dispatchSpy = vi . spyOn (
120- window . HTMLAnchorElement . prototype ,
121- "dispatchEvent" ,
122- ) ;
104+ it ( 'falls back to the default filename when none is provided' , ( ) => {
105+ const dispatchSpy = vi . spyOn ( window . HTMLAnchorElement . prototype , 'dispatchEvent' ) ;
123106 const wrapper = mountButton ( ) ;
124107 const { downloadImage } = wrapper . vm . $ . setupState ;
125108
126- expect ( typeof downloadImage ) . toBe ( " function" ) ;
127- downloadImage ( " data:image/png;base64,stub" ) ;
109+ expect ( typeof downloadImage ) . toBe ( ' function' ) ;
110+ downloadImage ( ' data:image/png;base64,stub' ) ;
128111
129112 expect ( dispatchSpy ) . toHaveBeenCalled ( ) ;
130113 dispatchSpy . mockRestore ( ) ;
0 commit comments