// tslint:disable: no-implicit-dependencies no-unused-expression no-http-string max-func-body-length import chai, { expect } from 'chai'; import { describe } from 'mocha'; import path from 'path'; import chaiAsPromised from 'chai-as-promised'; import { redactAll } from '../../../../util/privacy'; chai.use(chaiAsPromised as any); describe('Privacy', () => { describe('Redact sessionID', () => { it('redact sessionID', () => { expect( redactAll('052d3096a72d2271bbba0d820729a3548749a2b3890c3b41ea08c4c2722616dd2b') ).to.be.equal('[REDACTED]'); }); it('redact multiple sessionID', () => { expect( redactAll( '052d3096a72d2271bbba0d820729a3548749a2b3890c3b41ea08c4c2722616dd2b 052d3096a72d2271bbba0d820729a3548749a2b3890c3b41ea08c4c2722616dd2c end' ) ).to.be.equal('[REDACTED] [REDACTED] end'); }); it('redact sessionID without the 05 prefix', () => { expect( redactAll( 'start 2d3096a72d2271bbba0d820729a3548749a2b3890c3b41ea08c4c2722616dd2b middle 2d3096a72d2271bbba0d820729a3548749a2b3890c3b41ea08c4c2722616dd2c end' ) ).to.be.equal('start [REDACTED] middle [REDACTED] end'); }); }); describe('Redact serverUrl', () => { it('redact serverUrl https no port', () => { expect(redactAll('https://example.org')).to.be.equal('[REDACTED]'); }); it('redact serverUrl http no port', () => { expect(redactAll('http://example.org')).to.be.equal('[REDACTED]'); }); it('redact serverUrl https with port', () => { expect(redactAll('https://example.org:8080')).to.be.equal('[REDACTED]'); }); it('redact serverUrl http with port', () => { expect(redactAll('http://example.org:8001')).to.be.equal('[REDACTED]'); }); it('redact serverUrl http with port keep rest of content', () => { expect(redactAll('start http://example.org:8001 end')).to.be.equal('start [REDACTED] end'); }); it('redact multiple serverUrl http with port keep rest of content', () => { expect(redactAll('start http://example.org:8001 http://session.org:8003 end')).to.be.equal( 'start [REDACTED] [REDACTED] end' ); }); }); describe('Redact snodeIP', () => { it('redact snodeIP no port', () => { expect(redactAll('127.0.0.1')).to.be.equal('[REDACTED]'); }); it('redact snodeIP with port', () => { expect(redactAll('127.0.0.1:22')).to.be.equal('[REDACTED]:22'); }); it('redact snodeIP with port multiple', () => { expect(redactAll('127.0.0.1:8098 127.0.0.1:22 127.0.0.1')).to.be.equal( '[REDACTED]:8098 [REDACTED]:22 [REDACTED]' ); }); it('redact snodeIP with port multiple but keep rest of content', () => { expect(redactAll('start 127.0.0.1:2212 127.0.0.1:2200 middle 127.0.0.1 end')).to.be.equal( 'start [REDACTED]:2212 [REDACTED]:2200 middle [REDACTED] end' ); }); }); describe('Redact app path', () => { it('removes whatever is in front of the app root path before logging', () => { const appRootPath = path.join(__dirname, '..', '..', '..', '..', '..'); const appFolderName = path.basename(appRootPath); expect(redactAll(appRootPath)).to.be.be.oneOf([ `[REDACTED]/${appFolderName}`, `[REDACTED]\\${appFolderName}`, ]); }); it('removes whatever is in front of the app root path before logging', () => { const appRootPath = path.join(__dirname, '..', '..', '..', '..', '..'); const appFolderName = path.basename(appRootPath); expect(redactAll(appRootPath)).to.be.be.oneOf([ `[REDACTED]/${appFolderName}`, `[REDACTED]\\${appFolderName}`, ]); }); }); });