From 557a1fe069916748917f8e169d4ba3c08f682eae Mon Sep 17 00:00:00 2001 From: Sarah Zakarias Date: Tue, 10 Dec 2024 21:39:20 +0000 Subject: [PATCH] Remove

tag from weekly sparkline --- .../templates/views/pkg/info_box.dart | 8 +- .../golden/pkg_activity_log_page.html | 24 +- app/test/frontend/golden/pkg_admin_page.html | 24 +- .../frontend/golden/pkg_changelog_page.html | 24 +- .../frontend/golden/pkg_example_page.html | 24 +- .../frontend/golden/pkg_install_page.html | 24 +- app/test/frontend/golden/pkg_score_page.html | 30 +- .../pkg_score_page_with_downloads_chart.html | 30 +- app/test/frontend/golden/pkg_show_page.html | 24 +- .../golden/pkg_show_page_discontinued.html | 24 +- .../golden/pkg_show_page_flutter_plugin.html | 24 +- .../golden/pkg_show_page_publisher.html | 24 +- .../golden/pkg_show_page_retracted.html | 24 +- ..._page_retracted_non_retracted_version.html | 24 +- .../golden/pkg_show_version_page.html | 24 +- .../frontend/golden/pkg_versions_page.html | 24 +- app/test/frontend/handlers/package_test.dart | 67 +- app/test/frontend/templates_test.dart | 616 +++++++++--------- 18 files changed, 562 insertions(+), 501 deletions(-) diff --git a/app/lib/frontend/templates/views/pkg/info_box.dart b/app/lib/frontend/templates/views/pkg/info_box.dart index 37dfab2358..248e8c1e07 100644 --- a/app/lib/frontend/templates/views/pkg/info_box.dart +++ b/app/lib/frontend/templates/views/pkg/info_box.dart @@ -85,7 +85,7 @@ d.Node packageInfoBoxNode({ _publisher(package.publisherId), if (data.weeklyDownloadCounts != null && requestContext.experimentalFlags.showDownloadCounts) - _block('Weekly Downloads', _downloadsChart(data.weeklyDownloadCounts!)), + _downloadsChart(data.weeklyDownloadCounts!), _metadata( description: version.pubspec!.description, metaLinks: metaLinks, @@ -120,7 +120,11 @@ d.Node _downloadsChart(WeeklyDownloadCounts wdc) { 'data-weekly-sparkline-points': _encodeForWeeklySparkline(wdc.weeklyDownloads, wdc.newestDate), }); - return container; + + return d.fragment([ + d.h3(classes: ['title'], text: 'Weekly Downloads'), + container, + ]); } String _encodeForWeeklySparkline(List downloads, DateTime newestDate) { diff --git a/app/test/frontend/golden/pkg_activity_log_page.html b/app/test/frontend/golden/pkg_activity_log_page.html index 54fd5f1fc0..4a7974e456 100644 --- a/app/test/frontend/golden/pkg_activity_log_page.html +++ b/app/test/frontend/golden/pkg_activity_log_page.html @@ -370,18 +370,20 @@

Metadata

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

@@ -446,18 +448,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

diff --git a/app/test/frontend/golden/pkg_admin_page.html b/app/test/frontend/golden/pkg_admin_page.html index 713e55912e..b5a8bc2e36 100644 --- a/app/test/frontend/golden/pkg_admin_page.html +++ b/app/test/frontend/golden/pkg_admin_page.html @@ -655,18 +655,20 @@

Restore retracted package version

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

@@ -731,18 +733,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

diff --git a/app/test/frontend/golden/pkg_changelog_page.html b/app/test/frontend/golden/pkg_changelog_page.html index b2d608ac06..aba70f4b67 100644 --- a/app/test/frontend/golden/pkg_changelog_page.html +++ b/app/test/frontend/golden/pkg_changelog_page.html @@ -240,18 +240,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

@@ -317,18 +319,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

diff --git a/app/test/frontend/golden/pkg_example_page.html b/app/test/frontend/golden/pkg_example_page.html index f20bbcb513..8cb8081971 100644 --- a/app/test/frontend/golden/pkg_example_page.html +++ b/app/test/frontend/golden/pkg_example_page.html @@ -237,18 +237,20 @@

Metadata

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

@@ -314,18 +316,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

diff --git a/app/test/frontend/golden/pkg_install_page.html b/app/test/frontend/golden/pkg_install_page.html index 49efbb33e8..859ede2801 100644 --- a/app/test/frontend/golden/pkg_install_page.html +++ b/app/test/frontend/golden/pkg_install_page.html @@ -263,18 +263,20 @@

Import it

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

@@ -340,18 +342,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

diff --git a/app/test/frontend/golden/pkg_score_page.html b/app/test/frontend/golden/pkg_score_page.html index 6be2de15f7..24968c86f0 100644 --- a/app/test/frontend/golden/pkg_score_page.html +++ b/app/test/frontend/golden/pkg_score_page.html @@ -226,10 +226,10 @@

Metadata

- 3 - % + -- +
-
popularity
+
downloads

@@ -325,18 +325,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

@@ -402,18 +404,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

diff --git a/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html b/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html index 6be2de15f7..266932c289 100644 --- a/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html +++ b/app/test/frontend/golden/pkg_score_page_with_downloads_chart.html @@ -226,10 +226,10 @@

Metadata

- 3 - % + -- +
-
popularity
+
downloads

@@ -325,18 +325,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

@@ -402,18 +404,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

diff --git a/app/test/frontend/golden/pkg_show_page.html b/app/test/frontend/golden/pkg_show_page.html index ed6090ac31..60ef94324d 100644 --- a/app/test/frontend/golden/pkg_show_page.html +++ b/app/test/frontend/golden/pkg_show_page.html @@ -240,18 +240,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

@@ -317,18 +319,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

diff --git a/app/test/frontend/golden/pkg_show_page_discontinued.html b/app/test/frontend/golden/pkg_show_page_discontinued.html index 5ba9646d4a..4ede246ed9 100644 --- a/app/test/frontend/golden/pkg_show_page_discontinued.html +++ b/app/test/frontend/golden/pkg_show_page_discontinued.html @@ -233,18 +233,20 @@

points
-
-
- 25 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

pkg is awesome

@@ -310,18 +312,20 @@

points
-
-
- 25 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

pkg is awesome

diff --git a/app/test/frontend/golden/pkg_show_page_flutter_plugin.html b/app/test/frontend/golden/pkg_show_page_flutter_plugin.html index 029c52e0f6..c420e31da1 100644 --- a/app/test/frontend/golden/pkg_show_page_flutter_plugin.html +++ b/app/test/frontend/golden/pkg_show_page_flutter_plugin.html @@ -229,18 +229,20 @@

points
-
-
- 43 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

flutter_titanium is awesome

@@ -310,18 +312,20 @@

points
-
-
- 43 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

flutter_titanium is awesome

diff --git a/app/test/frontend/golden/pkg_show_page_publisher.html b/app/test/frontend/golden/pkg_show_page_publisher.html index 6430d79f03..4b5a5ec589 100644 --- a/app/test/frontend/golden/pkg_show_page_publisher.html +++ b/app/test/frontend/golden/pkg_show_page_publisher.html @@ -228,12 +228,12 @@

points
-
-
- 12 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

@@ -243,6 +243,8 @@

Publisher

example.com

+

Weekly Downloads

+

neon is awesome

@@ -308,12 +310,12 @@

points
-
-
- 12 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

@@ -323,6 +325,8 @@

Publisher

example.com

+

Weekly Downloads

+

neon is awesome

diff --git a/app/test/frontend/golden/pkg_show_page_retracted.html b/app/test/frontend/golden/pkg_show_page_retracted.html index d29fc29f4c..1f07e6269c 100644 --- a/app/test/frontend/golden/pkg_show_page_retracted.html +++ b/app/test/frontend/golden/pkg_show_page_retracted.html @@ -216,18 +216,20 @@

points
-
-
- 25 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

pkg is awesome

@@ -286,18 +288,20 @@

points
-
-
- 25 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

pkg is awesome

diff --git a/app/test/frontend/golden/pkg_show_page_retracted_non_retracted_version.html b/app/test/frontend/golden/pkg_show_page_retracted_non_retracted_version.html index d5e905269e..afbb6de4aa 100644 --- a/app/test/frontend/golden/pkg_show_page_retracted_non_retracted_version.html +++ b/app/test/frontend/golden/pkg_show_page_retracted_non_retracted_version.html @@ -224,18 +224,20 @@

points
-
-
- 25 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

pkg is awesome

@@ -301,18 +303,20 @@

points
-
-
- 25 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

pkg is awesome

diff --git a/app/test/frontend/golden/pkg_show_version_page.html b/app/test/frontend/golden/pkg_show_version_page.html index 7f77a27563..28b31d10cf 100644 --- a/app/test/frontend/golden/pkg_show_version_page.html +++ b/app/test/frontend/golden/pkg_show_version_page.html @@ -234,18 +234,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

@@ -311,18 +313,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

diff --git a/app/test/frontend/golden/pkg_versions_page.html b/app/test/frontend/golden/pkg_versions_page.html index ed2eb55d61..21a88754c1 100644 --- a/app/test/frontend/golden/pkg_versions_page.html +++ b/app/test/frontend/golden/pkg_versions_page.html @@ -347,18 +347,20 @@

Prerelease versions of oxygen

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

@@ -424,18 +426,20 @@

points
-
-
- 3 - % +
+
+ -- +
-
popularity
+
downloads

Publisher

unverified uploader

+

Weekly Downloads

+

oxygen is awesome

diff --git a/app/test/frontend/handlers/package_test.dart b/app/test/frontend/handlers/package_test.dart index 53601c9157..773ebe58fd 100644 --- a/app/test/frontend/handlers/package_test.dart +++ b/app/test/frontend/handlers/package_test.dart @@ -2,7 +2,7 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -// import 'package:pub_dev/tool/test_profile/models.dart'; +import 'package:pub_dev/tool/test_profile/models.dart'; import 'package:test/test.dart'; import '../../shared/handlers_test_utils.dart'; @@ -121,39 +121,38 @@ void main() { }, ); -// TODO(https://github.com/dart-lang/pub-dev/issues/8385): enable out commented test. - // testWithProfile( - // 'package pages without homepage', - // testProfile: TestProfile( - // packages: [ - // TestPackage( - // name: 'pkg', - // versions: [TestVersion(version: '1.0.0-nohomepage')]), - // ], - // defaultUser: 'admin@pub.dev', - // ), - // processJobsWithFakeRunners: true, - // fn: () async { - // final urls = [ - // '/packages/pkg', - // '/packages/pkg/changelog', - // '/packages/pkg/example', - // '/packages/pkg/versions', - // '/packages/pkg/pubspec', - // '/packages/pkg/license', - // '/packages/pkg/score', - // ]; - // for (final url in urls) { - // await expectHtmlResponse( - // await issueGet(url), - // present: [], - // absent: [ - // 'Homepage', - // ], - // ); - // } - // }, - // ); + testWithProfile( + 'package pages without homepage', + testProfile: TestProfile( + packages: [ + TestPackage( + name: 'pkg', + versions: [TestVersion(version: '1.0.0-nohomepage')]), + ], + defaultUser: 'admin@pub.dev', + ), + processJobsWithFakeRunners: true, + fn: () async { + final urls = [ + '/packages/pkg', + '/packages/pkg/changelog', + '/packages/pkg/example', + '/packages/pkg/versions', + '/packages/pkg/pubspec', + '/packages/pkg/license', + '/packages/pkg/score', + ]; + for (final url in urls) { + await expectHtmlResponse( + await issueGet(url), + present: [], + absent: [ + 'Homepage', + ], + ); + } + }, + ); testWithProfile( 'publisher redirect', diff --git a/app/test/frontend/templates_test.dart b/app/test/frontend/templates_test.dart index 1d0557c6e4..a1c3badd69 100644 --- a/app/test/frontend/templates_test.dart +++ b/app/test/frontend/templates_test.dart @@ -15,8 +15,8 @@ import 'package:pub_dev/admin/models.dart'; import 'package:pub_dev/audit/backend.dart'; import 'package:pub_dev/audit/models.dart'; import 'package:pub_dev/fake/backend/fake_auth_provider.dart'; -// import 'package:pub_dev/frontend/handlers/package.dart' -// show loadPackagePageData; +import 'package:pub_dev/frontend/handlers/package.dart' + show loadPackagePageData; import 'package:pub_dev/frontend/request_context.dart'; import 'package:pub_dev/frontend/static_files.dart'; import 'package:pub_dev/frontend/templates/admin.dart'; @@ -24,29 +24,29 @@ import 'package:pub_dev/frontend/templates/consent.dart'; import 'package:pub_dev/frontend/templates/landing.dart'; import 'package:pub_dev/frontend/templates/listing.dart'; import 'package:pub_dev/frontend/templates/misc.dart'; -// import 'package:pub_dev/frontend/templates/package.dart'; -// import 'package:pub_dev/frontend/templates/package_admin.dart'; +import 'package:pub_dev/frontend/templates/package.dart'; +import 'package:pub_dev/frontend/templates/package_admin.dart'; import 'package:pub_dev/frontend/templates/publisher.dart'; import 'package:pub_dev/frontend/templates/report.dart'; import 'package:pub_dev/frontend/templates/views/pkg/score_tab.dart'; -// import 'package:pub_dev/package/backend.dart'; -// import 'package:pub_dev/package/models.dart'; +import 'package:pub_dev/package/backend.dart'; +import 'package:pub_dev/package/models.dart'; import 'package:pub_dev/package/search_adapter.dart'; import 'package:pub_dev/publisher/backend.dart'; import 'package:pub_dev/publisher/models.dart'; import 'package:pub_dev/scorecard/backend.dart'; import 'package:pub_dev/search/search_service.dart'; -// import 'package:pub_dev/service/download_counts/backend.dart'; +import 'package:pub_dev/service/download_counts/backend.dart'; import 'package:pub_dev/service/youtube/backend.dart'; import 'package:pub_dev/shared/utils.dart' show shortDateFormat; import 'package:pub_dev/shared/versions.dart'; -// import 'package:pub_dev/tool/test_profile/models.dart'; +import 'package:pub_dev/tool/test_profile/models.dart'; import 'package:test/test.dart'; import '../shared/test_models.dart'; import '../shared/test_services.dart'; import '../shared/utils.dart'; -// import 'handlers/_utils.dart'; +import 'handlers/_utils.dart'; const String goldenDir = 'test/frontend/golden'; @@ -54,10 +54,10 @@ final _regenerateGoldens = false; void main() { group('templates', () { - // Future loadPackagePageDataByName( - // String name, String versionName, String? assetKind) async => - // loadPackagePageData((await packageBackend.lookupPackage(name))!, - // versionName, assetKind); + Future loadPackagePageDataByName( + String name, String versionName, String? assetKind) async => + loadPackagePageData((await packageBackend.lookupPackage(name))!, + versionName, assetKind); void expectGoldenFile( String content, @@ -137,231 +137,229 @@ void main() { }, ); -// TODO(https://github.com/dart-lang/pub-dev/issues/8385): enable out commented tests. - - // testWithProfile( - // 'package show page', - // processJobsWithFakeRunners: true, - // fn: () async { - // final data = await withFakeAuthRequestContext( - // adminAtPubDevEmail, - // () => loadPackagePageDataByName('oxygen', '1.2.0', AssetKind.readme), - // ); - // final html = renderPkgShowPage(data); - // expectGoldenFile(html, 'pkg_show_page.html', timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // }); - // }, - // ); - - // testWithProfile( - // 'package changelog page', - // processJobsWithFakeRunners: true, - // fn: () async { - // final data = await loadPackagePageDataByName( - // 'oxygen', '1.2.0', AssetKind.changelog); - // final html = renderPkgChangelogPage(data); - // expectGoldenFile(html, 'pkg_changelog_page.html', timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // }); - // }, - // ); - - // testWithProfile( - // 'package example page', - // processJobsWithFakeRunners: true, - // fn: () async { - // final data = await loadPackagePageDataByName( - // 'oxygen', '1.2.0', AssetKind.example); - // final html = renderPkgExamplePage(data); - // expectGoldenFile(html, 'pkg_example_page.html', timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // }); - // }, - // ); - - // testWithProfile( - // 'package install page', - // processJobsWithFakeRunners: true, - // fn: () async { - // final data = await loadPackagePageDataByName('oxygen', '1.2.0', null); - // final html = renderPkgInstallPage(data); - // expectGoldenFile(html, 'pkg_install_page.html', timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // }); - // }, - // ); - - // testWithProfile('package score page', processJobsWithFakeRunners: true, - // fn: () async { - // final data = await loadPackagePageDataByName('oxygen', '1.2.0', null); - // final html = renderPkgScorePage(data); - // expectGoldenFile(html, 'pkg_score_page.html', timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // }); - // }); - - // testWithProfile( - // 'package score page with downloads chart div with data', - // processJobsWithFakeRunners: true, - // fn: () async { - // final date = DateTime.parse('2024-01-07'); - // final versionsCounts = { - // '1.2.0': 200, - // '2.0.0-alpha': 2, - // '2.0.0': 2, - // '2.1.0': 2, - // '3.1.0': 2, - // '4.0.0-0': 2, - // '6.1.0': 2, - // }; - // await downloadCountsBackend.updateDownloadCounts( - // 'oxygen', versionsCounts, date); - // final data = await loadPackagePageDataByName( - // 'oxygen', '1.2.0', AssetKind.changelog); - // final html = renderPkgScorePage(data); - // expectGoldenFile(html, 'pkg_score_page_with_downloads_chart.html', - // timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // }); - // }, - // ); - - // testWithProfile( - // 'package show page - with version', - // processJobsWithFakeRunners: true, - // fn: () async { - // final data = await loadPackagePageDataByName( - // 'oxygen', '1.2.0', AssetKind.readme); - // final html = renderPkgShowPage(data); - // expectGoldenFile(html, 'pkg_show_version_page.html', timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // }); - // }, - // ); - - // testWithProfile( - // 'package show page with flutter_plugin', - // processJobsWithFakeRunners: true, - // fn: () async { - // final data = await withFakeAuthRequestContext( - // adminAtPubDevEmail, - // () => loadPackagePageDataByName( - // 'flutter_titanium', '1.10.0', AssetKind.readme), - // ); - // final html = renderPkgShowPage(data); - // expectGoldenFile(html, 'pkg_show_page_flutter_plugin.html', - // timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // }); - // }, - // ); - - // testWithProfile('package show page with discontinued version', - // testProfile: TestProfile( - // packages: [ - // TestPackage(name: 'other'), - // TestPackage( - // name: 'pkg', - // versions: [TestVersion(version: '1.0.0')], - // isDiscontinued: true, - // replacedBy: 'other', - // ), - // ], - // defaultUser: 'admin@pub.dev', - // ), - // processJobsWithFakeRunners: true, fn: () async { - // final data = - // await loadPackagePageDataByName('pkg', '1.0.0', AssetKind.readme); - // final html = renderPkgShowPage(data); - // expectGoldenFile(html, 'pkg_show_page_discontinued.html', timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // }); - // }); - - // testWithProfile('package show page with retracted version', - // testProfile: TestProfile( - // packages: [ - // TestPackage( - // name: 'pkg', - // versions: [ - // TestVersion(version: '1.0.0'), - // TestVersion(version: '2.0.0'), - // ], - // retractedVersions: ['1.0.0'], - // ), - // ], - // defaultUser: 'admin@pub.dev', - // ), - // processJobsWithFakeRunners: true, fn: () async { - // final data = - // await loadPackagePageDataByName('pkg', '1.0.0', AssetKind.readme); - // final html = renderPkgShowPage(data); - // expectGoldenFile(html, 'pkg_show_page_retracted.html', timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // }); - - // final data2 = - // await loadPackagePageDataByName('pkg', '2.0.0', AssetKind.readme); - // final html2 = renderPkgShowPage(data2); - // expectGoldenFile( - // html2, 'pkg_show_page_retracted_non_retracted_version.html', - // timestamps: { - // 'published': data2.package.created, - // 'updated': data2.version.created, - // }); - // }); - - // testWithProfile('package show page with non-retracted version', - // testProfile: TestProfile( - // packages: [ - // TestPackage( - // name: 'pkg', - // versions: [ - // TestVersion(version: '1.0.0'), - // TestVersion(version: '2.0.0'), - // ], - // retractedVersions: ['1.0.0'], - // ), - // ], - // defaultUser: 'admin@pub.dev', - // ), - // processJobsWithFakeRunners: true, fn: () async { - // final data2 = - // await loadPackagePageDataByName('pkg', '2.0.0', AssetKind.readme); - // final html2 = renderPkgShowPage(data2); - // expectGoldenFile( - // html2, 'pkg_show_page_retracted_non_retracted_version.html', - // timestamps: { - // 'published': data2.package.created, - // 'updated': data2.version.created, - // }); - // }); - - // // package analysis was intentionally left out for this template - // testWithProfile( - // 'package show page with publisher', - // fn: () async { - // final data = - // await loadPackagePageDataByName('neon', '1.0.0', AssetKind.readme); - // final html = renderPkgShowPage(data); - // expectGoldenFile(html, 'pkg_show_page_publisher.html', timestamps: { - // 'published': data.package.created, - // 'updated': data.package.lastVersionPublished, - // }); - // }, - // processJobsWithFakeRunners: true, - // ); + testWithProfile( + 'package show page', + processJobsWithFakeRunners: true, + fn: () async { + final data = await withFakeAuthRequestContext( + adminAtPubDevEmail, + () => loadPackagePageDataByName('oxygen', '1.2.0', AssetKind.readme), + ); + final html = renderPkgShowPage(data); + expectGoldenFile(html, 'pkg_show_page.html', timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + }); + }, + ); + + testWithProfile( + 'package changelog page', + processJobsWithFakeRunners: true, + fn: () async { + final data = await loadPackagePageDataByName( + 'oxygen', '1.2.0', AssetKind.changelog); + final html = renderPkgChangelogPage(data); + expectGoldenFile(html, 'pkg_changelog_page.html', timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + }); + }, + ); + + testWithProfile( + 'package example page', + processJobsWithFakeRunners: true, + fn: () async { + final data = await loadPackagePageDataByName( + 'oxygen', '1.2.0', AssetKind.example); + final html = renderPkgExamplePage(data); + expectGoldenFile(html, 'pkg_example_page.html', timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + }); + }, + ); + + testWithProfile( + 'package install page', + processJobsWithFakeRunners: true, + fn: () async { + final data = await loadPackagePageDataByName('oxygen', '1.2.0', null); + final html = renderPkgInstallPage(data); + expectGoldenFile(html, 'pkg_install_page.html', timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + }); + }, + ); + + testWithProfile('package score page', processJobsWithFakeRunners: true, + fn: () async { + final data = await loadPackagePageDataByName('oxygen', '1.2.0', null); + final html = renderPkgScorePage(data); + expectGoldenFile(html, 'pkg_score_page.html', timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + }); + }); + + testWithProfile( + 'package score page with downloads chart div with data', + processJobsWithFakeRunners: true, + fn: () async { + final date = DateTime.parse('2024-01-07'); + final versionsCounts = { + '1.2.0': 200, + '2.0.0-alpha': 2, + '2.0.0': 2, + '2.1.0': 2, + '3.1.0': 2, + '4.0.0-0': 2, + '6.1.0': 2, + }; + await downloadCountsBackend.updateDownloadCounts( + 'oxygen', versionsCounts, date); + final data = await loadPackagePageDataByName( + 'oxygen', '1.2.0', AssetKind.changelog); + final html = renderPkgScorePage(data); + expectGoldenFile(html, 'pkg_score_page_with_downloads_chart.html', + timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + }); + }, + ); + + testWithProfile( + 'package show page - with version', + processJobsWithFakeRunners: true, + fn: () async { + final data = await loadPackagePageDataByName( + 'oxygen', '1.2.0', AssetKind.readme); + final html = renderPkgShowPage(data); + expectGoldenFile(html, 'pkg_show_version_page.html', timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + }); + }, + ); + + testWithProfile( + 'package show page with flutter_plugin', + processJobsWithFakeRunners: true, + fn: () async { + final data = await withFakeAuthRequestContext( + adminAtPubDevEmail, + () => loadPackagePageDataByName( + 'flutter_titanium', '1.10.0', AssetKind.readme), + ); + final html = renderPkgShowPage(data); + expectGoldenFile(html, 'pkg_show_page_flutter_plugin.html', + timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + }); + }, + ); + + testWithProfile('package show page with discontinued version', + testProfile: TestProfile( + packages: [ + TestPackage(name: 'other'), + TestPackage( + name: 'pkg', + versions: [TestVersion(version: '1.0.0')], + isDiscontinued: true, + replacedBy: 'other', + ), + ], + defaultUser: 'admin@pub.dev', + ), + processJobsWithFakeRunners: true, fn: () async { + final data = + await loadPackagePageDataByName('pkg', '1.0.0', AssetKind.readme); + final html = renderPkgShowPage(data); + expectGoldenFile(html, 'pkg_show_page_discontinued.html', timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + }); + }); + + testWithProfile('package show page with retracted version', + testProfile: TestProfile( + packages: [ + TestPackage( + name: 'pkg', + versions: [ + TestVersion(version: '1.0.0'), + TestVersion(version: '2.0.0'), + ], + retractedVersions: ['1.0.0'], + ), + ], + defaultUser: 'admin@pub.dev', + ), + processJobsWithFakeRunners: true, fn: () async { + final data = + await loadPackagePageDataByName('pkg', '1.0.0', AssetKind.readme); + final html = renderPkgShowPage(data); + expectGoldenFile(html, 'pkg_show_page_retracted.html', timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + }); + + final data2 = + await loadPackagePageDataByName('pkg', '2.0.0', AssetKind.readme); + final html2 = renderPkgShowPage(data2); + expectGoldenFile( + html2, 'pkg_show_page_retracted_non_retracted_version.html', + timestamps: { + 'published': data2.package.created, + 'updated': data2.version.created, + }); + }); + + testWithProfile('package show page with non-retracted version', + testProfile: TestProfile( + packages: [ + TestPackage( + name: 'pkg', + versions: [ + TestVersion(version: '1.0.0'), + TestVersion(version: '2.0.0'), + ], + retractedVersions: ['1.0.0'], + ), + ], + defaultUser: 'admin@pub.dev', + ), + processJobsWithFakeRunners: true, fn: () async { + final data2 = + await loadPackagePageDataByName('pkg', '2.0.0', AssetKind.readme); + final html2 = renderPkgShowPage(data2); + expectGoldenFile( + html2, 'pkg_show_page_retracted_non_retracted_version.html', + timestamps: { + 'published': data2.package.created, + 'updated': data2.version.created, + }); + }); + + // package analysis was intentionally left out for this template + testWithProfile( + 'package show page with publisher', + fn: () async { + final data = + await loadPackagePageDataByName('neon', '1.0.0', AssetKind.readme); + final html = renderPkgShowPage(data); + expectGoldenFile(html, 'pkg_show_page_publisher.html', timestamps: { + 'published': data.package.created, + 'updated': data.package.lastVersionPublished, + }); + }, + processJobsWithFakeRunners: true, + ); scopedTest('no content for analysis tab', () async { // no content @@ -377,64 +375,64 @@ void main() { 'Awaiting analysis to complete.'); }); - // testWithProfile( - // 'package admin page', - // processJobsWithFakeRunners: true, - // fn: () async { - // await withFakeAuthRequestContext( - // adminAtPubDevEmail, - // () async { - // final data = await loadPackagePageDataByName( - // 'oxygen', '1.2.0', AssetKind.readme); - // final html = renderPkgAdminPage( - // data, - // ['example.com'], - // await accountBackend.lookupUsersByEmail('admin@pub.dev'), - // ['2.0.0'], - // ['1.0.0'], - // ); - // expectGoldenFile(html, 'pkg_admin_page.html', timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // }); - // }, - // ); - // }, - // ); - - // testWithProfile( - // 'package activity log page', - // processJobsWithFakeRunners: true, - // fn: () async { - // await withFakeAuthRequestContext(adminAtPubDevEmail, () async { - // final data = await loadPackagePageDataByName('oxygen', '1.2.0', null); - // final activities = await auditBackend.listRecordsForPackage('oxygen'); - // expect(activities.records, isNotEmpty); - - // // extra records to trigger the 2-month separator - // final mockPresent = clock.now(); - // activities.records.insert( - // 0, - // AuditLogRecord() - // ..created = mockPresent - // ..expires = mockPresent.add(Duration(days: 61)) - // ..summary = 'recent action'); - - // final mockPast = data.package.created!.subtract(Duration(days: 75)); - // activities.records.add(AuditLogRecord() - // ..created = mockPast - // ..expires = auditLogRecordExpiresInFarFuture - // ..summary = 'old action'); - - // final html = renderPkgActivityLogPage(data, activities); - // expectGoldenFile(html, 'pkg_activity_log_page.html', timestamps: { - // 'published': data.package.created, - // 'updated': data.version.created, - // ..._activityLogTimestamps(activities), - // }); - // }); - // }, - // ); + testWithProfile( + 'package admin page', + processJobsWithFakeRunners: true, + fn: () async { + await withFakeAuthRequestContext( + adminAtPubDevEmail, + () async { + final data = await loadPackagePageDataByName( + 'oxygen', '1.2.0', AssetKind.readme); + final html = renderPkgAdminPage( + data, + ['example.com'], + await accountBackend.lookupUsersByEmail('admin@pub.dev'), + ['2.0.0'], + ['1.0.0'], + ); + expectGoldenFile(html, 'pkg_admin_page.html', timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + }); + }, + ); + }, + ); + + testWithProfile( + 'package activity log page', + processJobsWithFakeRunners: true, + fn: () async { + await withFakeAuthRequestContext(adminAtPubDevEmail, () async { + final data = await loadPackagePageDataByName('oxygen', '1.2.0', null); + final activities = await auditBackend.listRecordsForPackage('oxygen'); + expect(activities.records, isNotEmpty); + + // extra records to trigger the 2-month separator + final mockPresent = clock.now(); + activities.records.insert( + 0, + AuditLogRecord() + ..created = mockPresent + ..expires = mockPresent.add(Duration(days: 61)) + ..summary = 'recent action'); + + final mockPast = data.package.created!.subtract(Duration(days: 75)); + activities.records.add(AuditLogRecord() + ..created = mockPast + ..expires = auditLogRecordExpiresInFarFuture + ..summary = 'old action'); + + final html = renderPkgActivityLogPage(data, activities); + expectGoldenFile(html, 'pkg_activity_log_page.html', timestamps: { + 'published': data.package.created, + 'updated': data.version.created, + ..._activityLogTimestamps(activities), + }); + }); + }, + ); testWithProfile( 'package index page', @@ -503,19 +501,19 @@ void main() { }, ); - // testWithProfile( - // 'package versions page', - // processJobsWithFakeRunners: true, - // fn: () async { - // final data = await loadPackagePageDataByName('oxygen', '1.2.0', null); - // final rs = await issueGet('/packages/oxygen/versions'); - // final html = await rs.readAsString(); - // expectGoldenFile(html, 'pkg_versions_page.html', timestamps: { - // 'version-created': data.version.created, - // 'package-created': data.package.created, - // }); - // }, - // ); + testWithProfile( + 'package versions page', + processJobsWithFakeRunners: true, + fn: () async { + final data = await loadPackagePageDataByName('oxygen', '1.2.0', null); + final rs = await issueGet('/packages/oxygen/versions'); + final html = await rs.readAsString(); + expectGoldenFile(html, 'pkg_versions_page.html', timestamps: { + 'version-created': data.version.created, + 'package-created': data.package.created, + }); + }, + ); testWithProfile('publisher list page', fn: () async { final html = renderPublisherListPage(