1
1
import { vol } from "memfs" ;
2
- import {
3
- corePkg ,
4
- fsRoot ,
5
- nodecgPackageJson ,
6
- nodecgPackageJsonStr ,
7
- twitchChatPkg ,
8
- validDevInstall ,
9
- validProdInstall ,
10
- } from "../test.util" ;
2
+ import { corePkg , fsRoot , nodecgPackageJsonStr , twitchChatPkg , validDevInstall , validProdInstall } from "../test.util" ;
11
3
import { SemVer } from "semver" ;
12
4
import * as path from "path" ;
13
5
import * as installation from "../../src/utils/installation" ;
@@ -56,29 +48,29 @@ describe("generateBundle", () => {
56
48
test ( "should fail if bundle directory already contains files" , async ( ) => {
57
49
// Create some file inside the directory in which the bundle would be generated.
58
50
await vol . promises . writeFile ( packageJsonPath , "" ) ;
59
- await expect ( generateBundle ( fsRoot , defaultOpts , validProdInstall ) ) . rejects . toThrow (
51
+ await expect ( generateBundle ( defaultOpts , validProdInstall ) ) . rejects . toThrow (
60
52
"already exists and contains files" ,
61
53
) ;
62
54
} ) ;
63
55
64
56
test ( "should install dependencies" , async ( ) => {
65
57
const installMock = jest . spyOn ( npm , "runNpmInstall" ) . mockResolvedValue ( ) ;
66
- await generateBundle ( fsRoot , defaultOpts , validProdInstall ) ;
58
+ await generateBundle ( defaultOpts , validProdInstall ) ;
67
59
68
60
expect ( installMock ) . toHaveBeenCalled ( ) ;
69
61
expect ( installMock ) . toHaveBeenCalledWith ( defaultOpts . bundlePath , false ) ;
70
62
} ) ;
71
63
72
64
test ( "should run build if typescript" , async ( ) => {
73
65
const buildMock = jest . spyOn ( npm , "runNpmBuild" ) . mockClear ( ) . mockResolvedValue ( ) ;
74
- await generateBundle ( fsRoot , defaultOpts , validProdInstall ) ;
66
+ await generateBundle ( defaultOpts , validProdInstall ) ;
75
67
expect ( buildMock ) . toHaveBeenCalledTimes ( 1 ) ;
76
68
expect ( buildMock ) . toHaveBeenCalledWith ( defaultOpts . bundlePath ) ;
77
69
} ) ;
78
70
79
71
test ( "should not run build if javascript" , async ( ) => {
80
72
const buildMock = jest . spyOn ( npm , "runNpmBuild" ) . mockClear ( ) . mockResolvedValue ( ) ;
81
- await generateBundle ( fsRoot , jsOpts , validProdInstall ) ;
73
+ await generateBundle ( jsOpts , validProdInstall ) ;
82
74
expect ( buildMock ) . toHaveBeenCalledTimes ( 0 ) ;
83
75
} ) ;
84
76
} ) ;
@@ -87,7 +79,7 @@ describe("genPackageJson", () => {
87
79
// We don't have a good type for a package.json and this is only testing code so this should be fine.
88
80
// eslint-disable-next-line @typescript-eslint/no-explicit-any
89
81
async function genPackageJSON ( opts : GenerationOptions = defaultOpts ) : Promise < any > {
90
- await generateBundle ( fsRoot , opts , validProdInstall ) ;
82
+ await generateBundle ( opts , validProdInstall ) ;
91
83
const packageJsonStr = await vol . promises . readFile ( packageJsonPath ) ;
92
84
if ( ! packageJsonStr ) throw new Error ( "package.json does not exist" ) ;
93
85
return JSON . parse ( packageJsonStr . toString ( ) ) ;
@@ -112,12 +104,12 @@ describe("genPackageJson", () => {
112
104
test ( "should have all required typing packages as dependency if typescript" , async ( ) => {
113
105
const deps = ( await genPackageJSON ( defaultOpts ) ) [ "dependencies" ] ;
114
106
const e = Object . entries ( deps ) ;
115
- expect ( e ) . toEqual ( expect . arrayContaining ( [ [ "nodecg" , `^${ nodecgPackageJson . version } ` ] ] ) ) ;
116
107
expect ( e ) . toEqual ( expect . arrayContaining ( [ [ twitchChatPkg . name , `^${ twitchChatPkg . version } ` ] ] ) ) ;
117
108
118
109
// These dependencies should always have the latest version which is fetched by the mocked getLatestPackageVersion
119
110
expect ( e ) . toEqual ( expect . arrayContaining ( [ [ "typescript" , `^1.2.3` ] ] ) ) ;
120
111
expect ( e ) . toEqual ( expect . arrayContaining ( [ [ "@types/node" , `^1.2.3` ] ] ) ) ;
112
+ expect ( e ) . toEqual ( expect . arrayContaining ( [ [ "nodecg-types" , `^1.2.3` ] ] ) ) ;
121
113
} ) ;
122
114
123
115
test ( "should have build scripts if typescript" , async ( ) => {
0 commit comments