@@ -7,165 +7,137 @@ import { getRecordingLogger, LoggedMessage, setupTests } from "./testing-utils";
77
88setupTests ( test ) ;
99
10- test (
11- "resolveToolsInput returns undefined when no tools input or repository property is set" ,
12- ( t ) => {
13- const loggedMessages : LoggedMessage [ ] = [ ] ;
14- const logger = getRecordingLogger ( loggedMessages ) ;
15-
16- const result = resolveToolsInput ( undefined , { } , logger ) ;
17-
18- t . is ( result , undefined ) ;
19- t . is ( loggedMessages . length , 0 ) ;
20- } ,
21- ) ;
22-
23- test (
24- "resolveToolsInput returns workflow input when only workflow input is provided" ,
25- ( t ) => {
26- const loggedMessages : LoggedMessage [ ] = [ ] ;
27- const logger = getRecordingLogger ( loggedMessages ) ;
28-
29- const result = resolveToolsInput ( "latest" , { } , logger ) ;
30-
31- t . is ( result , "latest" ) ;
32- t . is ( loggedMessages . length , 1 ) ;
33- t . is (
34- loggedMessages [ 0 ] . message ,
35- "Setting tools: latest based on workflow input." ,
36- ) ;
37- } ,
38- ) ;
39-
40- test (
41- "resolveToolsInput returns repository property when only repository property is provided" ,
42- ( t ) => {
43- const loggedMessages : LoggedMessage [ ] = [ ] ;
44- const logger = getRecordingLogger ( loggedMessages ) ;
45-
46- const repositoryProperties : RepositoryProperties = {
47- [ RepositoryPropertyName . TOOLS ] : "toolcache" ,
48- } ;
49- const result = resolveToolsInput ( undefined , repositoryProperties , logger ) ;
50-
51- t . is ( result , "toolcache" ) ;
52- t . is ( loggedMessages . length , 1 ) ;
53- t . is (
54- loggedMessages [ 0 ] . message ,
55- "Setting tools: toolcache based on the 'github-codeql-tools' repository property." ,
56- ) ;
57- } ,
58- ) ;
59-
60- test (
61- "resolveToolsInput prioritizes workflow input over repository property" ,
62- ( t ) => {
63- const loggedMessages : LoggedMessage [ ] = [ ] ;
64- const logger = getRecordingLogger ( loggedMessages ) ;
65-
66- const repositoryProperties : RepositoryProperties = {
67- [ RepositoryPropertyName . TOOLS ] : "toolcache" ,
68- } ;
69- const result = resolveToolsInput ( "nightly" , repositoryProperties , logger ) ;
70-
71- t . is ( result , "nightly" ) ;
72- t . is ( loggedMessages . length , 1 ) ;
73- t . is (
74- loggedMessages [ 0 ] . message ,
75- "Setting tools: nightly based on workflow input." ,
76- ) ;
77- } ,
78- ) ;
79-
80- test (
81- "resolveToolsInput treats empty string workflow input as not set" ,
82- ( t ) => {
83- const loggedMessages : LoggedMessage [ ] = [ ] ;
84- const logger = getRecordingLogger ( loggedMessages ) ;
85-
86- const repositoryProperties : RepositoryProperties = {
87- [ RepositoryPropertyName . TOOLS ] : "toolcache" ,
88- } ;
89- const result = resolveToolsInput ( "" , repositoryProperties , logger ) ;
90-
91- t . is ( result , "toolcache" ) ;
92- t . is ( loggedMessages . length , 1 ) ;
93- t . is (
94- loggedMessages [ 0 ] . message ,
95- "Setting tools: toolcache based on the 'github-codeql-tools' repository property." ,
96- ) ;
97- } ,
98- ) ;
99-
100- test (
101- "resolveToolsInput returns workflow input with URL value" ,
102- ( t ) => {
103- const loggedMessages : LoggedMessage [ ] = [ ] ;
104- const logger = getRecordingLogger ( loggedMessages ) ;
105-
106- const url = "https://example.com/codeql-bundle.tar.gz" ;
107- const result = resolveToolsInput ( url , { } , logger ) ;
108-
109- t . is ( result , url ) ;
110- t . is ( loggedMessages . length , 1 ) ;
111- t . is (
112- loggedMessages [ 0 ] . message ,
113- `Setting tools: ${ url } based on workflow input.` ,
114- ) ;
115- } ,
116- ) ;
117-
118- test (
119- "resolveToolsInput returns repository property with 'latest' value" ,
120- ( t ) => {
121- const loggedMessages : LoggedMessage [ ] = [ ] ;
122- const logger = getRecordingLogger ( loggedMessages ) ;
123-
124- const repositoryProperties : RepositoryProperties = {
125- [ RepositoryPropertyName . TOOLS ] : "latest" ,
126- } ;
127- const result = resolveToolsInput ( undefined , repositoryProperties , logger ) ;
128-
129- t . is ( result , "latest" ) ;
130- t . is (
131- loggedMessages [ 0 ] . message ,
132- "Setting tools: latest based on the 'github-codeql-tools' repository property." ,
133- ) ;
134- } ,
135- ) ;
136-
137- test (
138- "resolveToolsInput returns repository property with specific version" ,
139- ( t ) => {
140- const loggedMessages : LoggedMessage [ ] = [ ] ;
141- const logger = getRecordingLogger ( loggedMessages ) ;
142-
143- const repositoryProperties : RepositoryProperties = {
144- [ RepositoryPropertyName . TOOLS ] : "2.16.1" ,
145- } ;
146- const result = resolveToolsInput ( undefined , repositoryProperties , logger ) ;
147-
148- t . is ( result , "2.16.1" ) ;
149- t . is (
150- loggedMessages [ 0 ] . message ,
151- "Setting tools: 2.16.1 based on the 'github-codeql-tools' repository property." ,
152- ) ;
153- } ,
154- ) ;
155-
156- test (
157- "resolveToolsInput returns undefined when repository property is undefined" ,
158- ( t ) => {
159- const loggedMessages : LoggedMessage [ ] = [ ] ;
160- const logger = getRecordingLogger ( loggedMessages ) ;
161-
162- const repositoryProperties : RepositoryProperties = {
163- [ RepositoryPropertyName . TOOLS ] : undefined ,
164- } ;
165- const result = resolveToolsInput ( undefined , repositoryProperties , logger ) ;
166-
167- t . is ( result , undefined ) ;
168- t . is ( loggedMessages . length , 0 ) ;
169- } ,
170- ) ;
171-
10+ test ( "resolveToolsInput returns undefined when no tools input or repository property is set" , ( t ) => {
11+ const loggedMessages : LoggedMessage [ ] = [ ] ;
12+ const logger = getRecordingLogger ( loggedMessages ) ;
13+
14+ const result = resolveToolsInput ( undefined , { } , logger ) ;
15+
16+ t . is ( result , undefined ) ;
17+ t . is ( loggedMessages . length , 0 ) ;
18+ } ) ;
19+
20+ test ( "resolveToolsInput returns workflow input when only workflow input is provided" , ( t ) => {
21+ const loggedMessages : LoggedMessage [ ] = [ ] ;
22+ const logger = getRecordingLogger ( loggedMessages ) ;
23+
24+ const result = resolveToolsInput ( "latest" , { } , logger ) ;
25+
26+ t . is ( result , "latest" ) ;
27+ t . is ( loggedMessages . length , 1 ) ;
28+ t . is (
29+ loggedMessages [ 0 ] . message ,
30+ "Setting tools: latest based on workflow input." ,
31+ ) ;
32+ } ) ;
33+
34+ test ( "resolveToolsInput returns repository property when only repository property is provided" , ( t ) => {
35+ const loggedMessages : LoggedMessage [ ] = [ ] ;
36+ const logger = getRecordingLogger ( loggedMessages ) ;
37+
38+ const repositoryProperties : RepositoryProperties = {
39+ [ RepositoryPropertyName . TOOLS ] : "toolcache" ,
40+ } ;
41+ const result = resolveToolsInput ( undefined , repositoryProperties , logger ) ;
42+
43+ t . is ( result , "toolcache" ) ;
44+ t . is ( loggedMessages . length , 1 ) ;
45+ t . is (
46+ loggedMessages [ 0 ] . message ,
47+ "Setting tools: toolcache based on the 'github-codeql-tools' repository property." ,
48+ ) ;
49+ } ) ;
50+
51+ test ( "resolveToolsInput prioritizes workflow input over repository property" , ( t ) => {
52+ const loggedMessages : LoggedMessage [ ] = [ ] ;
53+ const logger = getRecordingLogger ( loggedMessages ) ;
54+
55+ const repositoryProperties : RepositoryProperties = {
56+ [ RepositoryPropertyName . TOOLS ] : "toolcache" ,
57+ } ;
58+ const result = resolveToolsInput ( "nightly" , repositoryProperties , logger ) ;
59+
60+ t . is ( result , "nightly" ) ;
61+ t . is ( loggedMessages . length , 1 ) ;
62+ t . is (
63+ loggedMessages [ 0 ] . message ,
64+ "Setting tools: nightly based on workflow input." ,
65+ ) ;
66+ } ) ;
67+
68+ test ( "resolveToolsInput treats empty string workflow input as not set" , ( t ) => {
69+ const loggedMessages : LoggedMessage [ ] = [ ] ;
70+ const logger = getRecordingLogger ( loggedMessages ) ;
71+
72+ const repositoryProperties : RepositoryProperties = {
73+ [ RepositoryPropertyName . TOOLS ] : "toolcache" ,
74+ } ;
75+ const result = resolveToolsInput ( "" , repositoryProperties , logger ) ;
76+
77+ t . is ( result , "toolcache" ) ;
78+ t . is ( loggedMessages . length , 1 ) ;
79+ t . is (
80+ loggedMessages [ 0 ] . message ,
81+ "Setting tools: toolcache based on the 'github-codeql-tools' repository property." ,
82+ ) ;
83+ } ) ;
84+
85+ test ( "resolveToolsInput returns workflow input with URL value" , ( t ) => {
86+ const loggedMessages : LoggedMessage [ ] = [ ] ;
87+ const logger = getRecordingLogger ( loggedMessages ) ;
88+
89+ const url = "https://example.com/codeql-bundle.tar.gz" ;
90+ const result = resolveToolsInput ( url , { } , logger ) ;
91+
92+ t . is ( result , url ) ;
93+ t . is ( loggedMessages . length , 1 ) ;
94+ t . is (
95+ loggedMessages [ 0 ] . message ,
96+ `Setting tools: ${ url } based on workflow input.` ,
97+ ) ;
98+ } ) ;
99+
100+ test ( "resolveToolsInput returns repository property with 'latest' value" , ( t ) => {
101+ const loggedMessages : LoggedMessage [ ] = [ ] ;
102+ const logger = getRecordingLogger ( loggedMessages ) ;
103+
104+ const repositoryProperties : RepositoryProperties = {
105+ [ RepositoryPropertyName . TOOLS ] : "latest" ,
106+ } ;
107+ const result = resolveToolsInput ( undefined , repositoryProperties , logger ) ;
108+
109+ t . is ( result , "latest" ) ;
110+ t . is (
111+ loggedMessages [ 0 ] . message ,
112+ "Setting tools: latest based on the 'github-codeql-tools' repository property." ,
113+ ) ;
114+ } ) ;
115+
116+ test ( "resolveToolsInput returns repository property with specific version" , ( t ) => {
117+ const loggedMessages : LoggedMessage [ ] = [ ] ;
118+ const logger = getRecordingLogger ( loggedMessages ) ;
119+
120+ const repositoryProperties : RepositoryProperties = {
121+ [ RepositoryPropertyName . TOOLS ] : "2.16.1" ,
122+ } ;
123+ const result = resolveToolsInput ( undefined , repositoryProperties , logger ) ;
124+
125+ t . is ( result , "2.16.1" ) ;
126+ t . is (
127+ loggedMessages [ 0 ] . message ,
128+ "Setting tools: 2.16.1 based on the 'github-codeql-tools' repository property." ,
129+ ) ;
130+ } ) ;
131+
132+ test ( "resolveToolsInput returns undefined when repository property is undefined" , ( t ) => {
133+ const loggedMessages : LoggedMessage [ ] = [ ] ;
134+ const logger = getRecordingLogger ( loggedMessages ) ;
135+
136+ const repositoryProperties : RepositoryProperties = {
137+ [ RepositoryPropertyName . TOOLS ] : undefined ,
138+ } ;
139+ const result = resolveToolsInput ( undefined , repositoryProperties , logger ) ;
140+
141+ t . is ( result , undefined ) ;
142+ t . is ( loggedMessages . length , 0 ) ;
143+ } ) ;
0 commit comments