UNPKG

serverless-spy

Version:

CDK-based library for writing elegant integration tests on AWS serverless architecture and an additional web console to monitor events in real time.

143 lines (104 loc) 3.38 kB
var expect = require('expect.js') var os = require('os') var osCopy = {} var osShim var isWin = process.platform === 'win32' var tmpVar = isWin ? 'TEMP' : 'TMPDIR' var tmpDir = process.env[tmpVar] var isNode10 = (/0\.10\./).test(process.versions.node) var shimAPI = [ 'tmpdir', 'endianness', 'platform', 'arch', 'EOL' ] describe('os', function () { before(function () { if (isNode10) { shimAPI.forEach(function (prop) { osCopy[prop] = os[prop] os[prop] = undefined }) } }) before(function () { osShim = require('../lib/os') }) after(function () { if (isNode10) { // restore members references shimAPI.forEach(function (prop) { os[prop] = osCopy[prop] }) } }) it('should be an object', function () { expect(osShim).to.be.an('object') }) it('should be a clone object', function () { expect(osShim).to.not.equal(os) }) describe('API', function () { describe('tmpdir()', function () { before(function () { process.env[tmpVar] = '/custom/tmp' }) after(function () { process.env[tmpVar] = tmpDir }) it('should be expose the method', function () { expect(osShim.tmpdir).to.be.a('function') }) it('should use the exposed shim method', function () { expect(osShim.tmpdir).to.not.be.equal(os.tmpdir) }) it('should have the proper temporary directory path', function () { expect(osShim.tmpdir()).to.be.equal('/custom/tmp') }) }) describe('endianness()', function () { it('should be expose the method', function () { expect(osShim.endianness).to.be.a('function') }) it('should use the exposed shim method', function () { expect(osShim.endianness).to.not.be.equal(os.endianness) }) it('should return the proper endian value', function () { expect(osShim.endianness()).to.be.an('string') expect(osShim.endianness()).to.match(/LE|BE/) }) }) describe('EOL', function () { it('should be expose the method', function () { expect(osShim.EOL).to.be.a('string') }) it('should use the exposed shim method', function () { expect(osShim.EOL).to.not.be.equal(os.EOL) }) it('should return the proper EOL value', function () { if (isWin) { expect(osShim.EOL).to.be.equal('\n\r') } else { expect(osShim.EOL).to.be.equal('\n') } }) }) describe('platform()', function () { it('should be expose the method', function () { expect(osShim.platform).to.be.a('function') }) it('should use the exposed shim method', function () { expect(osShim.platform).to.not.be.equal(os.platform) }) it('should return the proper EOL value', function () { expect(osShim.platform()).to.be.equal(process.platform) }) }) describe('arch()', function () { it('should be expose the method', function () { expect(osShim.arch).to.be.a('function') }) it('should use the exposed shim method', function () { expect(osShim.arch).to.not.be.equal(os.arch) }) it('should return the proper EOL value', function () { expect(osShim.arch()).to.be.equal(process.arch) }) }) }) })