@@ -2,16 +2,11 @@ import { expect } from 'chai';
2
2
import os from 'os' ;
3
3
import { promises as fs } from 'fs' ;
4
4
5
- import { getOsInfo } from './get-os-info' ;
5
+ import { getOsInfo , parseDarwinInfo , parseLinuxInfo } from './get-os-info' ;
6
6
7
7
describe ( 'get-os-info' , function ( ) {
8
- let osInfo ;
9
- beforeEach ( async function ( ) {
10
- osInfo = await getOsInfo ( ) ;
11
- } ) ;
12
-
13
- it ( 'returns info from "os" module' , function ( ) {
14
- const { os_arch, os_type, os_version, os_release } = osInfo ;
8
+ it ( 'returns info from "os" module' , async function ( ) {
9
+ const { os_arch, os_type, os_version, os_release } = await getOsInfo ( ) ;
15
10
expect ( { os_arch, os_type, os_version, os_release } ) . to . deep . equal ( {
16
11
os_arch : os . arch ( ) ,
17
12
os_type : os . type ( ) ,
@@ -21,13 +16,31 @@ describe('get-os-info', function () {
21
16
} ) ;
22
17
23
18
describe ( 'on linux' , function ( ) {
24
- beforeEach ( function ( ) {
19
+ it ( 'parses os-release file' , function ( ) {
20
+ // Copied from https://manpages.ubuntu.com/manpages/focal/man5/os-release.5.html#example
21
+ const fixture = `
22
+ NAME=Fedora
23
+ VERSION="17 (Beefy Miracle)"
24
+ ID=fedora
25
+ VERSION_ID=17
26
+ PRETTY_NAME="Fedora 17 (Beefy Miracle)"
27
+ ANSI_COLOR="0;34"
28
+ CPE_NAME="cpe:/o:fedoraproject:fedora:17"
29
+ HOME_URL="https://fedoraproject.org/"
30
+ BUG_REPORT_URL="https://bugzilla.redhat.com/"
31
+ ` ;
32
+
33
+ expect ( parseLinuxInfo ( fixture ) ) . to . deep . equal ( {
34
+ os_linux_dist : 'fedora' ,
35
+ os_linux_release : '17' ,
36
+ } ) ;
37
+ } ) ;
38
+
39
+ it ( 'returns info from /etc/releases' , async function ( ) {
25
40
if ( process . platform !== 'linux' ) {
26
41
this . skip ( ) ;
27
42
}
28
- } ) ;
29
43
30
- it ( 'returns info from /etc/releases' , async function ( ) {
31
44
const etcRelease = await fs . readFile ( '/etc/os-release' , 'utf-8' ) ;
32
45
33
46
const releaseKv = etcRelease
@@ -47,7 +60,7 @@ describe('get-os-info', function () {
47
60
expect ( distroId ) . to . match ( / ^ ( r h e l | u b u n t u | d e b i a n ) $ / ) ;
48
61
expect ( distroVer ) . to . match ( / ^ \d + / ) ;
49
62
50
- const { os_linux_dist, os_linux_release } = osInfo ;
63
+ const { os_linux_dist, os_linux_release } = await getOsInfo ( ) ;
51
64
expect ( { os_linux_dist, os_linux_release } ) . to . deep . equal ( {
52
65
os_linux_dist : distroId ,
53
66
os_linux_release : distroVer ,
0 commit comments