@@ -59,10 +59,10 @@ void main() {
5959
6060 final testRunners = < TestRunner > [];
6161 final testDirs = [
62- // TODO(dnys1): Need to ensure Firebase/Supabase pre-reqs are installed
63- // p.join(fileSystem.currentDirectory.path, 'fixtures', 'apps'),
64- p.join (fileSystem.currentDirectory.path, 'fixtures' , 'standalone' ),
65- ]
62+ // TODO(dnys1): Need to ensure Firebase/Supabase pre-reqs are installed
63+ // p.join(fileSystem.currentDirectory.path, 'fixtures', 'apps'),
64+ p.join (fileSystem.currentDirectory.path, 'fixtures' , 'standalone' ),
65+ ]
6666 .map (fileSystem.directory)
6767 .expand ((testDir) => testDir.listSync ().whereType <Directory >());
6868 for (final testDir in testDirs) {
@@ -135,9 +135,7 @@ class TestRunner {
135135
136136 static Future <void > _warmUp (String projectRoot) {
137137 return Isolate .run (() async {
138- final sdkResult = await DartSdkFinder (
139- projectRoot: projectRoot,
140- ).findSdk ();
138+ final sdkResult = await DartSdkFinder (projectRoot: projectRoot).findSdk ();
141139 Sdk .current = sdkResult.sdk;
142140 return CelestAnalyzer .warmUp (projectRoot);
143141 });
@@ -147,16 +145,13 @@ class TestRunner {
147145 group (testName, () {
148146 setUpAll (() async {
149147 if (fileSystem.file (p.join (projectRoot, '.fvmrc' )).existsSync ()) {
150- final res = Process .runSync (
151- 'fvm' ,
152- ['use' ],
153- workingDirectory: projectRoot,
154- );
148+ final res = Process .runSync ('fvm' , [
149+ 'use' ,
150+ ], workingDirectory: projectRoot);
155151 expect (res.exitCode, 0 , reason: '${res .stdout }\n ${res .stderr }' );
156152 }
157- final sdkResult = await DartSdkFinder (
158- projectRoot: projectRoot,
159- ).findSdk ();
153+ final sdkResult =
154+ await DartSdkFinder (projectRoot: projectRoot).findSdk ();
160155 Sdk .current = sdkResult.sdk;
161156 await runPub (
162157 exe: Platform .resolvedExecutable,
@@ -227,11 +222,11 @@ class TestRunner {
227222 // Analyzer needs a bit longer.
228223 // TODO(dnys1): Benchmark + improve performance of analysis.
229224 test ('analyzer' , timeout: const Timeout .factor (3 ), () async {
230- final CelestAnalysisResult (: project, : errors, : warnings) =
231- await analyzer .analyzeProject (
232- migrateProject: false ,
233- updateResources: updateGoldens,
234- );
225+ final CelestAnalysisResult (: project, : errors, : warnings) = await analyzer
226+ .analyzeProject (
227+ migrateProject: false ,
228+ updateResources: updateGoldens,
229+ );
235230 expect (errors, isEmpty);
236231 expect (warnings, isEmpty);
237232 expect (project, isNotNull);
@@ -248,27 +243,32 @@ class TestRunner {
248243 const JsonEncoder .withIndent (' ' ).convert (project! .toJson ()),
249244 );
250245 } else {
251- final expectedAst = jsonDecode (await goldenAst.readAsString ());
252- expect (project! .toJson (), expectedAst);
246+ final expectedAst =
247+ jsonDecode (await goldenAst.readAsString ()) as Map <String , dynamic >;
248+ expect (
249+ project! .toJson ()..remove ('sdkConfig' ),
250+ expectedAst..remove ('sdkConfig' ),
251+ );
253252 }
254253 });
255254 }
256255
257256 void testCodegen () {
258257 test ('codegen' , () async {
259- final CelestAnalysisResult (: project, : errors, : warnings) =
260- await analyzer .analyzeProject (
261- migrateProject: false ,
262- updateResources: updateGoldens,
263- );
258+ final CelestAnalysisResult (: project, : errors, : warnings) = await analyzer
259+ .analyzeProject (
260+ migrateProject: false ,
261+ updateResources: updateGoldens,
262+ );
264263 expect (errors, isEmpty);
265264 expect (warnings, isEmpty);
266265 expect (project, isNotNull);
267266
268- final configValues = await ConfigValueSolver (
269- project: project! ,
270- environmentId: 'local' ,
271- ).solveAll ();
267+ final configValues =
268+ await ConfigValueSolver (
269+ project: project! ,
270+ environmentId: 'local' ,
271+ ).solveAll ();
272272 final projectResolver = ProjectLinker (
273273 configValues: configValues,
274274 environmentId: 'local' ,
@@ -306,19 +306,20 @@ class TestRunner {
306306
307307 void testResolve () {
308308 test ('resolve' , () async {
309- final CelestAnalysisResult (: project, : errors, : warnings) =
310- await analyzer .analyzeProject (
311- migrateProject: false ,
312- updateResources: updateGoldens,
313- );
309+ final CelestAnalysisResult (: project, : errors, : warnings) = await analyzer
310+ .analyzeProject (
311+ migrateProject: false ,
312+ updateResources: updateGoldens,
313+ );
314314 expect (errors, isEmpty);
315315 expect (warnings, isEmpty);
316316 expect (project, isNotNull);
317317
318- final configValues = await ConfigValueSolver (
319- project: project! ,
320- environmentId: 'local' ,
321- ).solveAll ();
318+ final configValues =
319+ await ConfigValueSolver (
320+ project: project! ,
321+ environmentId: 'local' ,
322+ ).solveAll ();
322323 final projectResolver = ProjectLinker (
323324 configValues: configValues,
324325 environmentId: 'local' ,
@@ -335,26 +336,32 @@ class TestRunner {
335336 const JsonEncoder .withIndent (' ' ).convert (resolvedAst),
336337 );
337338 } else {
338- final expectedAst = jsonDecode (resolvedAstFile.readAsStringSync ());
339- expect (resolvedAst, expectedAst);
339+ final expectedAst =
340+ jsonDecode (resolvedAstFile.readAsStringSync ())
341+ as Map <String , dynamic >;
342+ expect (
343+ resolvedAst..remove ('sdkConfig' ),
344+ expectedAst..remove ('sdkConfig' ),
345+ );
340346 }
341347 });
342348 }
343349
344350 void testClient () {
345351 test ('client' , () async {
346- final CelestAnalysisResult (: project, : errors) =
347- await analyzer .analyzeProject (
348- migrateProject: false ,
349- updateResources: updateGoldens,
350- );
352+ final CelestAnalysisResult (: project, : errors) = await analyzer
353+ .analyzeProject (
354+ migrateProject: false ,
355+ updateResources: updateGoldens,
356+ );
351357 expect (errors, isEmpty);
352358 expect (project, isNotNull);
353359
354- final configValues = await ConfigValueSolver (
355- project: project! ,
356- environmentId: 'local' ,
357- ).solveAll ();
360+ final configValues =
361+ await ConfigValueSolver (
362+ project: project! ,
363+ environmentId: 'local' ,
364+ ).solveAll ();
358365 final projectResolver = ProjectLinker (
359366 configValues: configValues,
360367 environmentId: 'local' ,
@@ -401,11 +408,11 @@ class TestRunner {
401408 final isCI = platform.environment.containsKey ('CI' );
402409 final shouldRun = ! isCI || platform.isLinux;
403410 test ('build' , skip: ! shouldRun, () async {
404- final CelestAnalysisResult (: project, : errors) =
405- await analyzer .analyzeProject (
406- migrateProject: false ,
407- updateResources: updateGoldens,
408- );
411+ final CelestAnalysisResult (: project, : errors) = await analyzer
412+ .analyzeProject (
413+ migrateProject: false ,
414+ updateResources: updateGoldens,
415+ );
409416 expect (errors, isEmpty);
410417 expect (project, isNotNull);
411418
@@ -423,44 +430,37 @@ class TestRunner {
423430
424431 final outputDir = projectPaths.buildDir;
425432 final imageName = '$testName -${Random ().nextInt (1000000 )}' ;
426- final dockerBuild = await processManager.run (
427- [
428- 'docker' ,
429- 'build' ,
430- '-t' ,
431- imageName,
432- '--platform=linux/amd64' ,
433- '.' ,
434- ],
435- workingDirectory: outputDir,
436- );
433+ final dockerBuild = await processManager.run ([
434+ 'docker' ,
435+ 'build' ,
436+ '-t' ,
437+ imageName,
438+ '--platform=linux/amd64' ,
439+ '.' ,
440+ ], workingDirectory: outputDir);
437441 expect (
438442 dockerBuild.exitCode,
439443 0 ,
440444 reason: '${dockerBuild .stdout }\n ${dockerBuild .stderr }' ,
441445 );
442446
443447 addTearDown (() async {
444- await processManager.run (
445- ['docker' , 'image' , 'rm' , imageName],
446- );
448+ await processManager.run (['docker' , 'image' , 'rm' , imageName]);
447449 });
448450
449451 final openPort = await RandomPortFinder ().findOpenPort ();
450- final dockerRun = await processManager.start (
451- [
452- 'docker' ,
453- 'run' ,
454- '--rm' ,
455- '-p' ,
456- '$openPort :8080' ,
457- '--platform=linux/amd64' ,
458- for (final database in project! .databases.values)
459- if (database.config case ast.CelestDatabaseConfig (: final hostname))
460- '--env=${hostname .name }=file::memory:' ,
461- imageName,
462- ],
463- );
452+ final dockerRun = await processManager.start ([
453+ 'docker' ,
454+ 'run' ,
455+ '--rm' ,
456+ '-p' ,
457+ '$openPort :8080' ,
458+ '--platform=linux/amd64' ,
459+ for (final database in project! .databases.values)
460+ if (database.config case ast.CelestDatabaseConfig (: final hostname))
461+ '--env=${hostname .name }=file::memory:' ,
462+ imageName,
463+ ]);
464464 addTearDown (() => dockerRun.kill (ProcessSignal .sigkill));
465465
466466 final dockerOutput = StreamController <String >.broadcast (sync : true );
@@ -503,18 +503,19 @@ class TestRunner {
503503
504504 setUpAll (() async {
505505 final entrypoint = projectPaths.localApiEntrypoint;
506- final CelestAnalysisResult (: project, : errors) =
507- await analyzer .analyzeProject (
508- migrateProject: false ,
509- updateResources: updateGoldens,
510- );
506+ final CelestAnalysisResult (: project, : errors) = await analyzer
507+ .analyzeProject (
508+ migrateProject: false ,
509+ updateResources: updateGoldens,
510+ );
511511 expect (errors, isEmpty);
512512 expect (project, isNotNull);
513513
514- final configValues = await ConfigValueSolver (
515- project: project! ,
516- environmentId: 'local' ,
517- ).solveAll ();
514+ final configValues =
515+ await ConfigValueSolver (
516+ project: project! ,
517+ environmentId: 'local' ,
518+ ).solveAll ();
518519 final projectResolver = ProjectLinker (
519520 configValues: configValues,
520521 environmentId: 'local' ,
@@ -526,8 +527,9 @@ class TestRunner {
526527 configValues: {
527528 ...configValues,
528529 for (final database in project.databases.values)
529- if (database.config
530- case ast.CelestDatabaseConfig (: final hostname))
530+ if (database.config case ast.CelestDatabaseConfig (
531+ : final hostname,
532+ ))
531533 hostname.name: 'file::memory:' ,
532534 },
533535 environmentId: 'local' ,
@@ -577,19 +579,20 @@ class TestRunner {
577579 group (functionName, () {
578580 for (final testCase in httpTests) {
579581 test (testCase.name, () async {
580- final request = Request (
581- testCase.method,
582- apiUri ()
583- .resolve (
584- '/${apiName .paramCase }/${functionName .paramCase }' ,
582+ final request =
583+ Request (
584+ testCase.method,
585+ apiUri ()
586+ .resolve (
587+ '/${apiName .paramCase }/${functionName .paramCase }' ,
588+ )
589+ .replace (queryParameters: testCase.queryParameters),
585590 )
586- .replace (queryParameters: testCase.queryParameters),
587- )
588- ..headers.addAll ({
589- 'Content-Type' : 'application/json' ,
590- ...testCase.headers,
591- })
592- ..body = jsonEncode (testCase.input);
591+ ..headers.addAll ({
592+ 'Content-Type' : 'application/json' ,
593+ ...testCase.headers,
594+ })
595+ ..body = jsonEncode (testCase.input);
593596 if (testCase.setup case final setup? ) {
594597 await setup (request);
595598 }
@@ -4535,7 +4538,8 @@ final tests = <String, Test>{
45354538 final jwt = JWT (
45364539 {
45374540 'aud' : 'authenticated' ,
4538- 'exp' : DateTime .now ()
4541+ 'exp' :
4542+ DateTime .now ()
45394543 .add (const Duration (days: 1 ))
45404544 .millisecondsSinceEpoch ~ /
45414545 1000 ,
0 commit comments