vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
1 lines • 3.27 kB
Source Map (JSON)
{"version":3,"file":"mock.mjs","sources":["../../../../components/upload/tests/mock.ts"],"sourcesContent":["import { nextTick } from 'vue'\nimport { vi } from 'vitest'\n\nimport type { DOMWrapper } from '@vue/test-utils'\nimport type { UploadSourceFile } from '../symbol'\n\nconst getMockFile = (element: HTMLInputElement, files: File[]) => {\n vi.spyOn(element, 'files', 'get').mockReturnValue(files as unknown as FileList)\n}\n\nexport const getXhr = (type: 'success' | 'error' | 'abort') => {\n return class XMLHttpRequest {\n status = 0\n withCredentials = false\n responseText = '{\"success\": true}'\n response = 'success'\n\n upload = {\n onprogress(event: { loaded: number, total: number }) {\n return event\n },\n }\n\n open() {\n // start mock xhr\n }\n\n setRequestHeader() {\n // set mock xhr header\n }\n\n send() {\n if (type === 'success') {\n // send mock xhr\n this.status = 200\n } else if (type === 'abort') {\n this.onabort()\n this.abort()\n } else if (type === 'error') {\n this.status = 199\n this.onerror()\n }\n\n this.onload()\n this.upload.onprogress({\n loaded: 50,\n total: 100,\n })\n }\n\n onload() {\n // mock xhr onload\n }\n\n onabort() {\n // mock xhr onabort\n }\n\n abort() {\n // mock xhr abort\n }\n\n onerror() {\n // mock xhr onerror\n }\n }\n}\n\nexport const triggerUploadFiles = async (input: DOMWrapper<HTMLInputElement>, fileList: any[]) => {\n getMockFile(input.element, fileList)\n await input.trigger('change')\n await nextTick()\n}\n\nexport class FormData {\n append() {\n // mock FormData append\n }\n}\n\nexport class FileReader {\n result = ''\n\n readAsDataURL(source: UploadSourceFile) {\n this.result = `data:image/svg+xml;base64,${source.name}`\n nextTick(() => {\n this.onload()\n })\n }\n\n onload() {\n // mock FileReader onload\n }\n}\n"],"names":["getMockFile","element","files","vi","getXhr","type","__publicField","event","triggerUploadFiles","input","fileList","nextTick","FormData","FileReader","source"],"mappings":";;;;;;AAMA,MAAMA,IAAc,CAACC,GAA2BC,MAAkB;AAChE,EAAAC,EAAG,MAAMF,GAAS,SAAS,KAAK,EAAE,gBAAgBC,CAA4B;AAChF,GAEaE,IAAS,CAACC,MACd,MAAqB;AAAA,EAArB;AACL,IAAAC,EAAA,gBAAS;AACT,IAAAA,EAAA,yBAAkB;AAClB,IAAAA,EAAA,sBAAe;AACf,IAAAA,EAAA,kBAAW;AAEX,IAAAA,EAAA,gBAAS;AAAA,MACP,WAAWC,GAA0C;AAC5C,eAAAA;AAAA,MAAA;AAAA,IAEX;AAAA;AAAA,EAEA,OAAO;AAAA,EAAA;AAAA,EAIP,mBAAmB;AAAA,EAAA;AAAA,EAInB,OAAO;AACL,IAAIF,MAAS,YAEX,KAAK,SAAS,MACLA,MAAS,WAClB,KAAK,QAAQ,GACb,KAAK,MAAM,KACFA,MAAS,YAClB,KAAK,SAAS,KACd,KAAK,QAAQ,IAGf,KAAK,OAAO,GACZ,KAAK,OAAO,WAAW;AAAA,MACrB,QAAQ;AAAA,MACR,OAAO;AAAA,IAAA,CACR;AAAA,EAAA;AAAA,EAGH,SAAS;AAAA,EAAA;AAAA,EAIT,UAAU;AAAA,EAAA;AAAA,EAIV,QAAQ;AAAA,EAAA;AAAA,EAIR,UAAU;AAAA,EAAA;AAGZ,GAGWG,IAAqB,OAAOC,GAAqCC,MAAoB;AACpF,EAAAV,EAAAS,EAAM,SAASC,CAAQ,GAC7B,MAAAD,EAAM,QAAQ,QAAQ,GAC5B,MAAME,EAAS;AACjB;AAEO,MAAMC,EAAS;AAAA,EACpB,SAAS;AAAA,EAAA;AAGX;AAEO,MAAMC,EAAW;AAAA,EAAjB;AACL,IAAAP,EAAA,gBAAS;AAAA;AAAA,EAET,cAAcQ,GAA0B;AACjC,SAAA,SAAS,6BAA6BA,EAAO,IAAI,IACtDH,EAAS,MAAM;AACb,WAAK,OAAO;AAAA,IAAA,CACb;AAAA,EAAA;AAAA,EAGH,SAAS;AAAA,EAAA;AAGX;"}