From 3afe36b46eeab3ff65f651f571b2bff5b2d639c1 Mon Sep 17 00:00:00 2001 From: Zach Date: Fri, 29 Mar 2024 09:30:57 -0500 Subject: [PATCH] added example test and recursive suffix checking in ldp.post --- lib/ldp.js | 9 ++++++++- package.json | 1 + test/integration/http-test.js | 9 +++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/ldp.js b/lib/ldp.js index 7a22bfa2..2c4e849f 100644 --- a/lib/ldp.js +++ b/lib/ldp.js @@ -137,6 +137,7 @@ class LDP { } async post (hostname, containerPath, stream, { container, slug, extension, contentType }) { + console.log('container:', container) // POST without content type is forbidden if (!contentType) { throw error(400, @@ -155,7 +156,13 @@ class LDP { if (container) { // the name of a container cannot be a valid auxiliary resource document - if (this._containsInvalidSuffixes(slug + '/')) slug = slug.split('.')[0] + while (this._containsInvalidSuffixes(slug + '/')) { + console.log('splitting slug', slug) + // slug = slug.split('.')[0] + const idx = slug.lastIndexOf('.') + slug = slug.substr(0, idx) + console.log('new slug', slug) + } } else if (this.isAuxResource(slug, extension)) throw error(403, 'POST is not allowed for auxiliary resources') if (slug.match(/\/|\||:/)) { diff --git a/package.json b/package.json index 54a9041d..8aa3514b 100644 --- a/package.json +++ b/package.json @@ -146,6 +146,7 @@ "validate": "node ./test/validate-turtle.js", "nyc": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 nyc --reporter=text-summary mocha --recursive test/integration/ test/unit/", "mocha": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 mocha --recursive test/integration/ test/unit/", + "mocha-integration": "cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 mocha --recursive test/integration/http-test.js", "prepublishOnly": "npm test", "postpublish": "git push --follow-tags", "test": "npm run standard && npm run validate && npm run nyc", diff --git a/test/integration/http-test.js b/test/integration/http-test.js index ad5ec9e1..a535dec3 100644 --- a/test/integration/http-test.js +++ b/test/integration/http-test.js @@ -923,6 +923,15 @@ describe('HTTP APIs', function () { .expect(hasHeader('acl', suffixAcl)) .expect(201, done) }) + it('should do something', function (done) { + server.post('/post-tests/') + .set('content-type', 'text/turtle') + .set('slug', 'foo.bar.acl.meta') + .set('link', '; rel="type"') + .send(postRequest2Body) + .expect('location', /\/post-tests\/foo.bar\//) + .expect(201, done) + }) it('should fail return 404 if no parent container found', function (done) { server.post('/hello.html/') .send(postRequest1Body)