Skip to content

Commit

Permalink
Move admin action tests to separate files. (#8002)
Browse files Browse the repository at this point in the history
  • Loading branch information
isoos committed Aug 30, 2024
1 parent 63992f7 commit d01408e
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 103 deletions.
100 changes: 0 additions & 100 deletions app/test/admin/api_actions_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@

import 'package:_pub_shared/data/admin_api.dart';
import 'package:clock/clock.dart';
import 'package:pub_dev/account/backend.dart';
import 'package:pub_dev/package/backend.dart';
import 'package:pub_dev/package/models.dart';
import 'package:pub_dev/publisher/backend.dart';
import 'package:pub_dev/shared/datastore.dart';
import 'package:test/test.dart';

Expand Down Expand Up @@ -41,74 +39,6 @@ void main() {
});
});

testWithProfile(
'creating, listing members and deleting publisher with no packages',
fn: () async {
final client = createPubApiClient(authToken: siteAdminToken);
final p0 = await publisherBackend.getPublisher('other.com');
expect(p0, isNull);
final rs1 = await client.adminInvokeAction(
'publisher-create',
AdminInvokeActionArguments(arguments: {
'publisher': 'other.com',
'member-email': 'user@pub.dev',
}),
);
expect(rs1.output, {
'message': 'Publisher created.',
'publisherId': 'other.com',
'member-email': 'user@pub.dev',
});
final publisherMembersResponse = await client.adminInvokeAction(
'publisher-members-list',
AdminInvokeActionArguments(arguments: {
'publisher': 'other.com',
}),
);
expect(publisherMembersResponse.output, {
'publisher': 'other.com',
'description': '',
'website': 'https://other.com/',
'contact': 'user@pub.dev',
'created': isA<String>(),
'members': [
{'email': 'user@pub.dev', 'role': 'admin', 'userId': isA<String>()}
]
});
final p1 = await publisherBackend.getPublisher('other.com');
expect(p1, isNotNull);
final rs2 = await client.adminInvokeAction('publisher-delete',
AdminInvokeActionArguments(arguments: {'publisher': 'other.com'}));
expect(rs2.output, {
'message': 'Publisher and all members deleted.',
'publisherId': 'other.com',
'members-count': 1,
});
final p2 = await publisherBackend.getPublisher('other.com');
expect(p2, isNull);
});

testWithProfile('remove package from publisher', fn: () async {
final api = createPubApiClient(authToken: siteAdminToken);
final result = await api.adminInvokeAction(
'publisher-package-remove',
AdminInvokeActionArguments(arguments: {'package': 'neon'}),
);
final neon = await packageBackend.lookupPackage('neon');

expect(result.output, {
'previousPublisher': 'example.com',
'package': 'neon',
'uploaders': [
{'email': 'admin@pub.dev', 'userId': neon!.uploaders!.first}
]
});
final packagePublisherInfo = await packageBackend.getPublisherInfo('neon');
expect(packagePublisherInfo.publisherId, isNull);
final emails = await accountBackend.getEmailsOfUserIds(neon.uploaders!);
expect(emails, {'admin@pub.dev'});
});

testWithProfile('user-info', fn: () async {
final api = createPubApiClient(authToken: siteAdminToken);
final result = await api.adminInvokeAction(
Expand Down Expand Up @@ -179,34 +109,4 @@ void main() {
.uploadPackageBytes(bytes);
expect(rs2.success.message, contains('Successfully uploaded'));
});

testWithProfile('package-version-retraction', fn: () async {
final latest = await packageBackend.getLatestVersion('oxygen');

final api = createPubApiClient(authToken: siteAdminToken);
final result = await api.adminInvokeAction(
'package-version-retraction',
AdminInvokeActionArguments(arguments: {
'package': 'oxygen',
'version': latest!,
'set-retracted': 'true',
}),
);

expect(result.output, {
'before': {
'package': 'oxygen',
'version': latest,
'isRetracted': false,
},
'after': {
'package': 'oxygen',
'version': latest,
'isRetracted': true,
},
});

final newLatest = await packageBackend.getLatestVersion('oxygen');
expect(newLatest != latest, isTrue);
});
}
1 change: 0 additions & 1 deletion app/test/admin/package_actions_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import '../shared/test_models.dart';
import '../shared/test_services.dart';

void main() {
// TODO: move package-related tests from api_actions_test.dart
group('package admin actions', () {
testWithProfile('info request', fn: () async {
final client = createPubApiClient(authToken: siteAdminToken);
Expand Down
32 changes: 31 additions & 1 deletion app/test/admin/package_version_actions_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
// BSD-style license that can be found in the LICENSE file.

import 'package:_pub_shared/data/admin_api.dart';
import 'package:pub_dev/package/backend.dart';
import 'package:test/test.dart';

import '../shared/test_models.dart';
import '../shared/test_services.dart';

void main() {
// TODO: move package-version-related tests from api_actions_test.dart
group('package version admin actions', () {
testWithProfile('info request', fn: () async {
final client = createPubApiClient(authToken: siteAdminToken);
Expand All @@ -29,5 +29,35 @@ void main() {
}
});
});

testWithProfile('package-version-retraction', fn: () async {
final latest = await packageBackend.getLatestVersion('oxygen');

final api = createPubApiClient(authToken: siteAdminToken);
final result = await api.adminInvokeAction(
'package-version-retraction',
AdminInvokeActionArguments(arguments: {
'package': 'oxygen',
'version': latest!,
'set-retracted': 'true',
}),
);

expect(result.output, {
'before': {
'package': 'oxygen',
'version': latest,
'isRetracted': false,
},
'after': {
'package': 'oxygen',
'version': latest,
'isRetracted': true,
},
});

final newLatest = await packageBackend.getLatestVersion('oxygen');
expect(newLatest != latest, isTrue);
});
});
}
73 changes: 72 additions & 1 deletion app/test/admin/publisher_actions_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@
// BSD-style license that can be found in the LICENSE file.

import 'package:_pub_shared/data/admin_api.dart';
import 'package:pub_dev/account/backend.dart';
import 'package:pub_dev/package/backend.dart';
import 'package:pub_dev/publisher/backend.dart';
import 'package:test/test.dart';

import '../shared/test_models.dart';
import '../shared/test_services.dart';

void main() {
// TODO: move publisher-related tests from api_actions_test.dart
group('publisher admin actions', () {
testWithProfile('info request', fn: () async {
final client = createPubApiClient(authToken: siteAdminToken);
Expand All @@ -28,5 +30,74 @@ void main() {
},
});
});

testWithProfile(
'creating, listing members and deleting publisher with no packages',
fn: () async {
final client = createPubApiClient(authToken: siteAdminToken);
final p0 = await publisherBackend.getPublisher('other.com');
expect(p0, isNull);
final rs1 = await client.adminInvokeAction(
'publisher-create',
AdminInvokeActionArguments(arguments: {
'publisher': 'other.com',
'member-email': 'user@pub.dev',
}),
);
expect(rs1.output, {
'message': 'Publisher created.',
'publisherId': 'other.com',
'member-email': 'user@pub.dev',
});
final publisherMembersResponse = await client.adminInvokeAction(
'publisher-members-list',
AdminInvokeActionArguments(arguments: {
'publisher': 'other.com',
}),
);
expect(publisherMembersResponse.output, {
'publisher': 'other.com',
'description': '',
'website': 'https://other.com/',
'contact': 'user@pub.dev',
'created': isA<String>(),
'members': [
{'email': 'user@pub.dev', 'role': 'admin', 'userId': isA<String>()}
]
});
final p1 = await publisherBackend.getPublisher('other.com');
expect(p1, isNotNull);
final rs2 = await client.adminInvokeAction('publisher-delete',
AdminInvokeActionArguments(arguments: {'publisher': 'other.com'}));
expect(rs2.output, {
'message': 'Publisher and all members deleted.',
'publisherId': 'other.com',
'members-count': 1,
});
final p2 = await publisherBackend.getPublisher('other.com');
expect(p2, isNull);
});

testWithProfile('remove package from publisher', fn: () async {
final api = createPubApiClient(authToken: siteAdminToken);
final result = await api.adminInvokeAction(
'publisher-package-remove',
AdminInvokeActionArguments(arguments: {'package': 'neon'}),
);
final neon = await packageBackend.lookupPackage('neon');

expect(result.output, {
'previousPublisher': 'example.com',
'package': 'neon',
'uploaders': [
{'email': 'admin@pub.dev', 'userId': neon!.uploaders!.first}
]
});
final packagePublisherInfo =
await packageBackend.getPublisherInfo('neon');
expect(packagePublisherInfo.publisherId, isNull);
final emails = await accountBackend.getEmailsOfUserIds(neon.uploaders!);
expect(emails, {'admin@pub.dev'});
});
});
}

0 comments on commit d01408e

Please sign in to comment.