host-environment.test.mjs 1.1 KB

123456789101112131415161718192021
  1. import {test} from 'node:test'
  2. import assert from 'node:assert/strict'
  3. import {arch,release} from 'node:os'
  4. import {HostEnvironmentReporter} from './host-environment.mjs'
  5. import {HOST_SHELL} from './host-files.mjs'
  6. test('only sends optional host facts after explicit server negotiation and resets for old servers',()=>{
  7. const reporter=new HostEnvironmentReporter('/Users/fixture')
  8. assert.deepEqual(reporter.fields(),{})
  9. reporter.accept({environmentMetadata:1})
  10. const {fileTransferVersion,environment}=reporter.fields()
  11. assert.equal(fileTransferVersion,1)
  12. assert.deepEqual(environment,{version:1,osRelease:release(),arch:arch(),shell:HOST_SHELL,homeDirectory:'/Users/fixture',defaultCwd:'/Users/fixture',fileRoots:['/Users/fixture'],shellScope:'user',timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})
  13. assert.equal(Object.keys(environment).some(key=>/token|password|env|secret/i.test(key)),false)
  14. reporter.accept(undefined)
  15. assert.deepEqual(reporter.fields(),{})
  16. reporter.accept({environmentMetadata:2})
  17. assert.deepEqual(reporter.fields(),{})
  18. reporter.accept({environmentMetadata:1});reporter.reset()
  19. assert.deepEqual(reporter.fields(),{})
  20. })