Skip to content

Commit 3cf0d87

Browse files
add test for 200 after paid
1 parent 5db69fa commit 3cf0d87

File tree

1 file changed

+27
-14
lines changed

1 file changed

+27
-14
lines changed

test/surface/payment-required.test.ts

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,18 @@ class Oracle {
1212
this.calls = []
1313
this.server = createServer((req, res) => {
1414
const url = new URL(`http://oracle${req.url}`);
15-
console.log('oracle hit!', url.searchParams.get('agent'), url.searchParams.get('resource'))
15+
// console.log('oracle hit!', url.searchParams.get('agent'), url.searchParams.get('resource'))
1616
this.calls.push(url)
17-
if (this.paid.indexOf(url.searchParams.get('resource')) === -1) {
17+
const str = `${url.searchParams.get('agent')} ${url.searchParams.get('resource')}`
18+
// console.log('searching guest list', str, this.paid)
19+
if (this.paid.indexOf(str) === -1) {
1820
res.end(JSON.stringify({
1921
payHeaders: [
2022
'interledger-stream some.destination.account. Some+Shared+Secret+in+Base64=='
2123
]
2224
}))
2325
} else {
24-
res.end('OK')
26+
res.end(JSON.stringify({ ok: true }));
2527
}
2628
})
2729
}
@@ -67,24 +69,16 @@ describe('Read-Paying', () => {
6769
solidLogicBob = await getSolidLogicInstance('BOB')
6870
oracle = new Oracle();
6971
await oracle.server.listen(8402);
70-
console.log('oracle listening')
72+
// console.log('oracle listening')
7173
});
7274
afterAll(async () => {
7375
oracle.server.close();
7476
});
7577

7678
const { testFolderUrl } = generateTestFolder('ALICE');
77-
beforeEach(async () => {
78-
// FIXME: NSS ACL cache,
79-
// wait for ACL cache to clear:
80-
await new Promise(resolve => setTimeout(resolve, 20));
81-
});
79+
const resourceUrl = `${testFolderUrl}1/test.txt`;
8280

83-
afterEach(() => {
84-
// return solidLogicAlice.recursiveDelete(testFolderUrl);
85-
});
86-
it('Gives a 402 with accessTo Read access on non-container resource', async () => {
87-
const resourceUrl = `${testFolderUrl}1/test.txt`;
81+
beforeEach(async () => {
8882
// This will do mkdir-p:
8983
const creationResult = await solidLogicAlice.fetch(resourceUrl, {
9084
method: 'PUT',
@@ -103,9 +97,28 @@ describe('Read-Paying', () => {
10397
// 'If-None-Match': '*' - work around a bug in some servers that don't support If-None-Match on ACL doc URLs
10498
}
10599
});
100+
101+
// FIXME: NSS ACL cache,
102+
// wait for ACL cache to clear:
103+
await new Promise(resolve => setTimeout(resolve, 20));
104+
});
105+
106+
afterEach(() => {
107+
// return solidLogicAlice.recursiveDelete(testFolderUrl);
108+
});
109+
it('Gives a 402', async () => {
106110
const result = await solidLogicBob.fetch(resourceUrl)
107111
expect(result.status).toEqual(402);
108112
const payHeader = result.headers.get('Pay');
109113
expect(payHeader).toEqual('interledger-stream some.destination.account. Some+Shared+Secret+in+Base64==');
110114
});
115+
describe('After user pays', () => {
116+
beforeAll(() => {
117+
oracle.paid.push(`${WEBID_BOB} ${resourceUrl}`)
118+
});
119+
it('Gives a 200', async () => {
120+
const result = await solidLogicBob.fetch(resourceUrl)
121+
expect(result.status).toEqual(200);
122+
});
123+
})
111124
});

0 commit comments

Comments
 (0)