|
10 | 10 | * Module dependencies. |
11 | 11 | */ |
12 | 12 |
|
| 13 | +var os = require('os'); |
13 | 14 | var utils = require('../'); |
| 15 | +var mm = require('mm'); |
14 | 16 | var should = require('should'); |
15 | 17 | var moment = require('moment'); |
16 | 18 |
|
@@ -170,4 +172,36 @@ Encode string s using a URL-safe alphabet, which substitutes - instead of + and |
170 | 172 | } |
171 | 173 | }); |
172 | 174 | }); |
| 175 | + |
| 176 | + describe('getIP(), getIPv6(), getIPv4()', function () { |
| 177 | + it('should return ip version 4 address', function () { |
| 178 | + var address = utils.getIP(); |
| 179 | + address.should.equal(utils.getIPv4()); |
| 180 | + address.should.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/); |
| 181 | + }); |
| 182 | + |
| 183 | + it('should return ip version 6 address', function () { |
| 184 | + mm(os, 'networkInterfaces', function () { |
| 185 | + return { lo0: |
| 186 | + [ { address: '::1', family: 'IPv6', internal: true }, |
| 187 | + { address: 'fe80::1', family: 'IPv6', internal: true }, |
| 188 | + { address: '127.0.0.1', family: 'IPv4', internal: true } ], |
| 189 | + en0: |
| 190 | + [ { address: 'fe81::cabc:c8ff:feef:f996', family: 'IPv6', |
| 191 | + internal: true }, |
| 192 | + { address: '10.0.1.123', family: 'IPv4', internal: false } ], |
| 193 | + en7: |
| 194 | + [ { address: 'fe80::cabc:c8ff:feef:f996', family: 'IPv6', |
| 195 | + internal: false }, |
| 196 | + { address: '10.0.1.123', family: 'IPv4', internal: false } ], |
| 197 | + vmnet1: [ { address: '10.99.99.254', family: 'IPv4', internal: false } ], |
| 198 | + vmnet8: [ { address: '10.88.88.1', family: 'IPv4', internal: false } ], |
| 199 | + ppp0: [ { address: '10.2.0.231', family: 'IPv4', internal: false } ] |
| 200 | + }; |
| 201 | + }); |
| 202 | + var address = utils.getIPv6(); |
| 203 | + should.exists(address); |
| 204 | + address.should.equal('fe80::cabc:c8ff:feef:f996'); |
| 205 | + }); |
| 206 | + }); |
173 | 207 | }); |
0 commit comments