diff --git a/src/pages/Claim/Card/ClaimCard.vue b/src/pages/Claim/Card/ClaimCard.vue
index df6faf323..2308a5e14 100644
--- a/src/pages/Claim/Card/ClaimCard.vue
+++ b/src/pages/Claim/Card/ClaimCard.vue
@@ -11,6 +11,20 @@ const state = useState();
+
+
+
+
+
+
+ Detalles
+
+
@@ -18,4 +32,4 @@ const state = useState();
-
\ No newline at end of file
+
diff --git a/src/pages/Claim/Card/ClaimPhoto.vue b/src/pages/Claim/Card/ClaimPhoto.vue
index 354787878..8d269bbce 100644
--- a/src/pages/Claim/Card/ClaimPhoto.vue
+++ b/src/pages/Claim/Card/ClaimPhoto.vue
@@ -25,6 +25,10 @@ const claimDms = ref([
},
]);
const client = ref({});
+
+const inputFile = ref();
+const files = ref({});
+
const claimDmsRef = ref();
const dmsType = ref({});
const config = ref({});
@@ -96,20 +100,11 @@ function setClaimDms(data) {
client.value = data.client;
}
-async function uploadFile() {
- const element = document.createElement('input');
- element.setAttribute('type', 'file');
- element.setAttribute('multiple', true);
- element.click();
-
- element.addEventListener('change', () => {
- create(element.files).then(() => claimDmsRef.value.fetch());
- });
-}
-
-async function create(files) {
+async function create() {
const formData = new FormData();
- for (let i = 0; i < files.length; i++) formData.append(files[i].name, files[i]);
+ const inputFiles = files.value;
+ for (let i = 0; i < inputFiles.length; i++)
+ formData.append(inputFiles[i].name, inputFiles[i]);
const query = `claims/${claimId.value}/uploadFile`;
@@ -127,10 +122,7 @@ async function create(files) {
}).toUpperCase(),
};
- await axios({
- method: 'POST',
- url: query,
- data: formData,
+ await axios.post(query, formData, {
params: dms,
});
@@ -139,11 +131,14 @@ async function create(files) {
type: 'positive',
icon: 'check',
});
+ console.log(claimDmsRef);
+ claimDmsRef.value.fetch();
}
function onDrop($data) {
dragFile.value = false;
- create($data.dataTransfer.files).then(() => claimDmsRef.value.fetch());
+ files.value = $data.dataTransfer.files;
+ create();
}
function onDrag() {
@@ -190,7 +185,7 @@ function onDrag() {
@@ -245,16 +240,36 @@ function onDrag() {
-
- {{ t('globals.add') }}
-
+
-
+
diff --git a/test/cypress/integration/claimPhoto.spec.js b/test/cypress/integration/claimPhoto.spec.js
index a11f7208b..a6b4286cb 100755
--- a/test/cypress/integration/claimPhoto.spec.js
+++ b/test/cypress/integration/claimPhoto.spec.js
@@ -3,13 +3,14 @@ describe('ClaimPhoto', () => {
beforeEach(() => {
const claimId = 1;
cy.viewport(1280, 720);
- cy.login('developer');
- cy.visit(`/#/claim/${claimId}/photos`);
+ cy.login('developer').then(() => {
+ cy.visit(`/#/claim/${claimId}/photos`);
+ });
});
- xit('should add new file', () => {
- cy.get('.q-gutter-x-sm > .q-btn > .q-btn__content > .q-icon').click();
- cy.get('.container').selectFile('test/cypress/fixtures/image.jpg', {
+ it('should add new file', () => {
+ cy.get('label > .q-btn').click();
+ cy.get('label > .q-btn input').selectFile('test/cypress/fixtures/image.jpg', {
force: true,
});
cy.get('.q-notification__message').should('have.text', 'Data saved');
diff --git a/test/vitest/__tests__/pages/Claims/ClaimPhoto.spec.js b/test/vitest/__tests__/pages/Claims/ClaimPhoto.spec.js
index 4aba572c7..e09d15474 100644
--- a/test/vitest/__tests__/pages/Claims/ClaimPhoto.spec.js
+++ b/test/vitest/__tests__/pages/Claims/ClaimPhoto.spec.js
@@ -1,9 +1,6 @@
import { vi, describe, expect, it, beforeAll, afterEach } from 'vitest';
-import { ref } from 'vue';
-import { mount } from '@vue/test-utils';
import { createWrapper, axios } from 'app/test/vitest/helper';
import ClaimPhoto from 'pages/Claim/Card/ClaimPhoto.vue';
-import * as FormData from 'form-data';
describe('ClaimPhoto', () => {
let vm;
@@ -27,6 +24,7 @@ describe('ClaimPhoto', () => {
stubs: ['FetchData', 'TeleportSlot'],
mocks: {
claimDms: [{ dmsFk: 1 }],
+ claimDmsRef: { hola: 'hola' },
},
},
}).vm;
@@ -43,6 +41,9 @@ describe('ClaimPhoto', () => {
await vm.deleteDms(0);
+ expect(axios.post).toHaveBeenCalledWith(
+ `ClaimDms/${claimMock.claimDms[0].dmsFk}/removeFile`
+ );
expect(vm.quasar.notify).toHaveBeenCalledWith(
expect.objectContaining({ type: 'positive' })
);
@@ -86,15 +87,17 @@ describe('ClaimPhoto', () => {
});
});
- describe.skip('create()', () => {
+ describe('create()', () => {
it('should upload file and call quasar notify', async () => {
const files = [{ name: 'firstFile' }];
+
+ vi.mock('claimDmsRef', {});
vi.spyOn(axios, 'post').mockResolvedValue({ data: true });
vi.spyOn(vm.quasar, 'notify');
await vm.create(files);
- expect(axios).toHaveBeenCalledWith(
+ expect(axios.post).toHaveBeenCalledWith(
expect.objectContaining({ type: 'positive' })
);
expect(vm.quasar.notify).toHaveBeenCalledWith(
diff --git a/test/vitest/helper.js b/test/vitest/helper.js
index 795879ebd..c22d9b0c9 100644
--- a/test/vitest/helper.js
+++ b/test/vitest/helper.js
@@ -30,36 +30,36 @@ vi.mock('vue-router', () => ({
}),
}));
-// class FormDataMock {
-// append() {
-// vi.fn();
-// }
-// delete() {
-// vi.fn();
-// }
-// get() {
-// vi.fn();
-// }
-// getAll() {
-// vi.fn();
-// }
-// has() {
-// vi.fn();
-// }
-// set() {
-// vi.fn();
-// }
-// forEach() {
-// vi.fn();
-// }
-// }
+class FormDataMock {
+ append() {
+ vi.fn();
+ }
+ delete() {
+ vi.fn();
+ }
+ get() {
+ vi.fn();
+ }
+ getAll() {
+ vi.fn();
+ }
+ has() {
+ vi.fn();
+ }
+ set() {
+ vi.fn();
+ }
+ forEach() {
+ vi.fn();
+ }
+}
+global.FormData = FormDataMock;
export function createWrapper(component, options) {
const pinia = createTestingPinia({ createSpy: vi.fn, stubActions: false });
const defaultOptions = {
global: {
- // FormData: FormDataMock,
plugins: [i18n, pinia],
},
};