tricu

An interpreted language for exploring Tree Calculus
Log | Files | Refs | README | LICENSE

draft-session.test.mjs (1408B)


      1 import test from 'node:test';
      2 import assert from 'node:assert/strict';
      3 import {readFile,readdir,access} from 'node:fs/promises';
      4 
      5 test('browser code has no draft persistence or retired storage module',async()=>{
      6  for(const directory of ['src','dist']){
      7   const root=new URL('../'+directory+'/',import.meta.url);
      8   for(const name of await readdir(root)){
      9    if(!/\.(?:ts|js)$/.test(name))continue;
     10    assert.doesNotMatch(await readFile(new URL(name,root),'utf8'),/\b(?:localStorage|sessionStorage|indexedDB|saveDraft|readDraft|writeDraft|recoveryButtons)\b|draft-storage/,name);
     11   }
     12  }
     13  for(const file of ['src/draft-storage.ts','dist/draft-storage.js'])
     14   await assert.rejects(access(new URL('../'+file,import.meta.url)),{code:'ENOENT'});
     15 });
     16 
     17 test('source remains editable without autosave or recovery controls',async()=>{
     18  const html=await readFile(new URL('../index.html',import.meta.url),'utf8');
     19  assert.doesNotMatch(html,/draft-recovery|draft-save-status|recover-draft|forget-draft|download-draft-source|Draft recovery/);
     20  for(const id of ['source-editor','compile','stop','restore-source'])
     21   assert.match(html,new RegExp(`id="${id}"`));
     22  assert.doesNotMatch(html,/id="edit-source"|id="compiler-disclosure"/);
     23  const readme=await readFile(new URL('../README.md',import.meta.url),'utf8');
     24  assert.match(readme,/Draft source lives in the open page/);
     25  assert.match(readme,/Reloading starts fresh/);
     26 });