Caso 1: Disponibilidade do Serviço
Considere uma situação fictícia onde Ana pode ler o evento, enquanto Bia não pode. Se o serviço estiver fora do ar, não sabemos se a autorização teria funcionado. Este exemplo roda sem modelo ou API, mas representa essas três saídas.

```javascript
class PermissionExample {
constructor() {
this.assert = require('node:assert/strict');
}
readEvent({ userId, event, available = true }) {
if (!available) {
return { status: 'unavailable' };
}
if (event.ownerId!== userId) {
return { status: 'forbidden' };
}
return { status: 'ok', event: { title: event.title } };
}
}
const event = { ownerId: 'ana', title: 'Evento fictício' };
const example = new PermissionExample();
example.assert.equal(example.readEvent({ userId: 'ana', event }).status, 'ok');
example.assert.deepEqual(example.readEvent({ userId: 'bia', event }).status, 'forbidden');
example.assert.deepEqual(example.readEvent({ userId: 'bia', event, available: false }).status, 'unavailable');
console.log('3 verificações passaram no exemplo local.');
```