Surface tests for CRUD and Websockets-pubsub functionality of a pod server
Start your server with a self-signed cert on port 443 of localhost (for node-solid-server, make sure to set ACL_CACHE_TIME=5
) and run sh ./example.sh
.
In one terminal window:
- check out the https://github.com/solid/community-server repo locally, and run
npm ci; npm run build
- find the function
isRSAPublicJWK(x)
in node_modules/@solid/dist/identity-token-verifier/dist/guards/DPoPJWKGuard.js and addx.alg = 'RS256'
at the top of that function, to work around a bug in NSS v5.6.4, caused by nodeSolidServer/oidc-op#29. - ./bin/server.js -l debug
In another terminal window:
- check out this repo from https://github.com/solid/web-access-control-tests and run
npm ci
- check out the
run-against-css
branch - simple test (sets a root ACL doc from node and reads it back):
- run
node ./setup.js http://localhost:3000/.acl
to create a root ACL at http://localhost:3000/.acl which gives https://solidtestsuite.solidcommunity.net/profile/card#me full read/write/control access. - run
node ./fetch.js http://localhost:3000/.acl
to check that Alice ('solidtestsuite') can access it. - run
node ./fetch-bob.js http://localhost:3000/.acl
to check that Bob ('solid-crud-tests-example-2') can not access it.
- advanced test (uses the same root ACL doc, but from bash):
bash ./run-against-css.sh
You can also cut-and-paste the lines from run-against-css.sh into your bash shell, then you can more easily run tests interactively.
If you want to use your NSS on localhost instead of on solidcommunity.net, then:
- Run NSS on localhost, in multi-user mode so you can support both Alice and Bob
- You may need to set up alice.localhost in your /etc/hosts, but on Mac that is automatic.
- Browse to https://localhost:8443/ with Firefox and say you accept the self-signed cert (with Chrome the use of self-signed certs has become harder and harder recently)
- Set up a user, alice / 123, and edit ./fetch.js so that
oidcIssuer = 'https://localhost:8443';
,nssUsername = 'alice'
, andnssPassword = '123';
. - Run CSS with
NODE_TLS_REJECT_UNAUTHORIZED=0 ./bin/server.js -l debug
. - Run the fetch script with
NODE_TLS_REJECT_UNAUTHORIZED=0
as well, for instance:
NODE_TLS_REJECT_UNAUTHORIZED=0 node fetch.js http://localhost:3000/404.txt