Add more tests
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Thu, 9 Aug 2018 14:06:55 +0000 (16:06 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Thu, 9 Aug 2018 14:06:55 +0000 (16:06 +0200)
Feature #13989

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/common/webdav.test.ts

index 63771688cee94adbdbf37655f31e5c4b999039e5..455cef182d48fa94a647351083a28390edf72440 100644 (file)
@@ -16,6 +16,19 @@ describe('WebDAV', () => {
         expect(request).toBeInstanceOf(XMLHttpRequest);
     });
 
+    it('allows to modify defaults after instantiation', async () => {
+        const { open, load, setRequestHeader, createRequest } = mockCreateRequest();
+        const webdav = WebDAV.create(undefined, createRequest);
+        webdav.defaults.baseUrl = 'http://foo.com/';
+        webdav.defaults.headers = { Authorization: 'Basic' };
+        const promise = webdav.propfind('foo');
+        load();
+        const request = await promise;
+        expect(open).toHaveBeenCalledWith('PROPFIND', 'http://foo.com/foo');
+        expect(setRequestHeader).toHaveBeenCalledWith('Authorization', 'Basic');
+        expect(request).toBeInstanceOf(XMLHttpRequest);
+    });
+
     it('PROPFIND', async () => {
         const { open, load, createRequest } = mockCreateRequest();
         const webdav = WebDAV.create(undefined, createRequest);
@@ -50,6 +63,18 @@ describe('WebDAV', () => {
         expect(setRequestHeader).toHaveBeenCalledWith('Destination', 'foo-copy');
         expect(request).toBeInstanceOf(XMLHttpRequest);
     });
+    
+    it('COPY - adds baseUrl to Destination header', async () => {
+        const { open, setRequestHeader, load, createRequest } = mockCreateRequest();
+        const webdav = WebDAV.create(undefined, createRequest);
+        webdav.defaults.baseUrl = 'base/';
+        const promise = webdav.copy('foo', { destination: 'foo-copy' });
+        load();
+        const request = await promise;
+        expect(open).toHaveBeenCalledWith('COPY', 'base/foo');
+        expect(setRequestHeader).toHaveBeenCalledWith('Destination', 'base/foo-copy');
+        expect(request).toBeInstanceOf(XMLHttpRequest);
+    });
 
     it('MOVE', async () => {
         const { open, setRequestHeader, load, createRequest } = mockCreateRequest();
@@ -62,6 +87,18 @@ describe('WebDAV', () => {
         expect(request).toBeInstanceOf(XMLHttpRequest);
     });
 
+    it('MOVE - adds baseUrl to Destination header', async () => {
+        const { open, setRequestHeader, load, createRequest } = mockCreateRequest();
+        const webdav = WebDAV.create(undefined, createRequest);
+        webdav.defaults.baseUrl = 'base/';
+        const promise = webdav.move('foo', { destination: 'foo-moved' });
+        load();
+        const request = await promise;
+        expect(open).toHaveBeenCalledWith('MOVE', 'base/foo');
+        expect(setRequestHeader).toHaveBeenCalledWith('Destination', 'base/foo-moved');
+        expect(request).toBeInstanceOf(XMLHttpRequest);
+    });
+
     it('DELETE', async () => {
         const { open, load, createRequest } = mockCreateRequest();
         const webdav = WebDAV.create(undefined, createRequest);