A test suite with some tests for CRUD operations on containers and documents on a Solid pod.

Usage no npm install needed!

<script type="module">
  import webAccessControlTests from 'https://cdn.skypack.dev/web-access-control-tests';


WAC Tests

Surface tests for CRUD and Websockets-pubsub functionality of a pod server


In development

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.

Against CSS

In one terminal window:

In another terminal window:

  • 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.

Against CSS with local NSS instance as the IDP

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', and nssPassword = '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