Files
sogo/Tests/spec/HTTPCalendarSpec.js
2024-09-26 21:02:50 +02:00

55 lines
1.6 KiB
JavaScript

import config from '../lib/config'
import WebDAV from '../lib/WebDAV'
let webdav, resource
beforeAll(function () {
jasmine.DEFAULT_TIMEOUT_INTERVAL = config.timeout || 10000;
});
describe('HTTP Calendar', function() {
beforeAll(async function() {
webdav = new WebDAV(config.username, config.password)
resource = `/SOGo/so/${config.username}/Calendar`
})
it('Add Web Calendar', async function() {
const data = { url: config.webCalendarURL }
let url, response, body
url = `${resource}/addWebCalendar`
response = await webdav.postHttp(url, 'application/json', JSON.stringify(data))
expect(response.status)
.withContext(`HTTP status code when subscribing to a Web calendar`)
.toBe(200)
body = await response.json()
expect(Object.keys(body))
.withContext(`JSON payload when subscribing to a Web calendar`)
.toContain('id')
const calID = body.id
url = `${resource}/${calID}/reload`
response = await webdav.getHttp(url)
expect(response.status)
.withContext(`HTTP status code when reloading a Web calendar`)
.toBe(200)
expect(response.headers.get('content-type'))
.withContext(`Content type of response when reloading a Web calendar`)
.toBe('application/json')
body = await response.json()
expect(Object.keys(body))
.withContext(`JSON payload when reloading a Web calendar`)
.toContain('imported')
url = `${resource}/${calID}/delete`
response = await webdav.postHttp(url, 'application/json')
expect(response.status)
.withContext(`HTTP status code when unsubscribing to a Web calendar`)
.toBe(204)
})
})