import { expect } from 'chai' import { createTestApp, cleanTestDir, createFile, createDir } from './helpers.js' describe('Headers', () => { let request, testDir beforeEach(() => { ({ request, testDir } = createTestApp()) }) afterEach(() => cleanTestDir(testDir)) it('sets Link type header for resources', async () => { createFile(testDir, 'file.txt', 'data') const res = await request.get('/file.txt').expect(200) expect(res.headers.link).to.include('ldp#Resource') }) it('sets Link type header for containers', async () => { createDir(testDir, 'dir') const res = await request.get('/dir/').expect(200) expect(res.headers.link).to.include('ldp#BasicContainer') expect(res.headers.link).to.include('ldp#Container') }) it('sets Storage type on root', async () => { const res = await request.get('/').expect(200) expect(res.headers.link).to.include('pim/space#Storage') }) it('sets acl and describedby links', async () => { createFile(testDir, 'test.txt', 'data') const res = await request.get('/test.txt').expect(200) expect(res.headers.link).to.include('rel="acl"') expect(res.headers.link).to.include('rel="describedby"') }) it('sets Accept-Patch header', async () => { createFile(testDir, 'test.txt', 'data') const res = await request.get('/test.txt').expect(200) expect(res.headers['accept-patch']).to.include('text/n3') expect(res.headers['accept-patch']).to.include('application/sparql-update') }) it('sets Accept-Post header', async () => { const res = await request.get('/').expect(200) expect(res.headers['accept-post']).to.equal('*/*') }) it('sets Allow header', async () => { createFile(testDir, 'test.txt', 'data') const res = await request.get('/test.txt').expect(200) expect(res.headers.allow).to.include('GET') expect(res.headers.allow).to.include('PUT') expect(res.headers.allow).to.include('DELETE') }) it('sets X-Powered-By header', async () => { const res = await request.get('/').expect(200) expect(res.headers['x-powered-by']).to.equal('solid-server/7.0.0') }) it('sets Vary header', async () => { const res = await request.get('/').expect(200) expect(res.headers.vary).to.include('Accept') expect(res.headers.vary).to.include('Authorization') expect(res.headers.vary).to.include('Origin') }) it('sets ETag and Last-Modified', async () => { createFile(testDir, 'etag.txt', 'data') const res = await request.get('/etag.txt').expect(200) expect(res.headers.etag).to.exist expect(res.headers['last-modified']).to.exist }) })