Skip to content

Commit d01408e

Browse files
authored
Move admin action tests to separate files. (#8002)
1 parent 63992f7 commit d01408e

File tree

4 files changed

+103
-103
lines changed

4 files changed

+103
-103
lines changed

app/test/admin/api_actions_test.dart

Lines changed: 0 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@
44

55
import 'package:_pub_shared/data/admin_api.dart';
66
import 'package:clock/clock.dart';
7-
import 'package:pub_dev/account/backend.dart';
87
import 'package:pub_dev/package/backend.dart';
98
import 'package:pub_dev/package/models.dart';
10-
import 'package:pub_dev/publisher/backend.dart';
119
import 'package:pub_dev/shared/datastore.dart';
1210
import 'package:test/test.dart';
1311

@@ -41,74 +39,6 @@ void main() {
4139
});
4240
});
4341

44-
testWithProfile(
45-
'creating, listing members and deleting publisher with no packages',
46-
fn: () async {
47-
final client = createPubApiClient(authToken: siteAdminToken);
48-
final p0 = await publisherBackend.getPublisher('other.com');
49-
expect(p0, isNull);
50-
final rs1 = await client.adminInvokeAction(
51-
'publisher-create',
52-
AdminInvokeActionArguments(arguments: {
53-
'publisher': 'other.com',
54-
'member-email': 'user@pub.dev',
55-
}),
56-
);
57-
expect(rs1.output, {
58-
'message': 'Publisher created.',
59-
'publisherId': 'other.com',
60-
'member-email': 'user@pub.dev',
61-
});
62-
final publisherMembersResponse = await client.adminInvokeAction(
63-
'publisher-members-list',
64-
AdminInvokeActionArguments(arguments: {
65-
'publisher': 'other.com',
66-
}),
67-
);
68-
expect(publisherMembersResponse.output, {
69-
'publisher': 'other.com',
70-
'description': '',
71-
'website': 'https://other.com/',
72-
'contact': 'user@pub.dev',
73-
'created': isA<String>(),
74-
'members': [
75-
{'email': 'user@pub.dev', 'role': 'admin', 'userId': isA<String>()}
76-
]
77-
});
78-
final p1 = await publisherBackend.getPublisher('other.com');
79-
expect(p1, isNotNull);
80-
final rs2 = await client.adminInvokeAction('publisher-delete',
81-
AdminInvokeActionArguments(arguments: {'publisher': 'other.com'}));
82-
expect(rs2.output, {
83-
'message': 'Publisher and all members deleted.',
84-
'publisherId': 'other.com',
85-
'members-count': 1,
86-
});
87-
final p2 = await publisherBackend.getPublisher('other.com');
88-
expect(p2, isNull);
89-
});
90-
91-
testWithProfile('remove package from publisher', fn: () async {
92-
final api = createPubApiClient(authToken: siteAdminToken);
93-
final result = await api.adminInvokeAction(
94-
'publisher-package-remove',
95-
AdminInvokeActionArguments(arguments: {'package': 'neon'}),
96-
);
97-
final neon = await packageBackend.lookupPackage('neon');
98-
99-
expect(result.output, {
100-
'previousPublisher': 'example.com',
101-
'package': 'neon',
102-
'uploaders': [
103-
{'email': 'admin@pub.dev', 'userId': neon!.uploaders!.first}
104-
]
105-
});
106-
final packagePublisherInfo = await packageBackend.getPublisherInfo('neon');
107-
expect(packagePublisherInfo.publisherId, isNull);
108-
final emails = await accountBackend.getEmailsOfUserIds(neon.uploaders!);
109-
expect(emails, {'admin@pub.dev'});
110-
});
111-
11242
testWithProfile('user-info', fn: () async {
11343
final api = createPubApiClient(authToken: siteAdminToken);
11444
final result = await api.adminInvokeAction(
@@ -179,34 +109,4 @@ void main() {
179109
.uploadPackageBytes(bytes);
180110
expect(rs2.success.message, contains('Successfully uploaded'));
181111
});
182-
183-
testWithProfile('package-version-retraction', fn: () async {
184-
final latest = await packageBackend.getLatestVersion('oxygen');
185-
186-
final api = createPubApiClient(authToken: siteAdminToken);
187-
final result = await api.adminInvokeAction(
188-
'package-version-retraction',
189-
AdminInvokeActionArguments(arguments: {
190-
'package': 'oxygen',
191-
'version': latest!,
192-
'set-retracted': 'true',
193-
}),
194-
);
195-
196-
expect(result.output, {
197-
'before': {
198-
'package': 'oxygen',
199-
'version': latest,
200-
'isRetracted': false,
201-
},
202-
'after': {
203-
'package': 'oxygen',
204-
'version': latest,
205-
'isRetracted': true,
206-
},
207-
});
208-
209-
final newLatest = await packageBackend.getLatestVersion('oxygen');
210-
expect(newLatest != latest, isTrue);
211-
});
212112
}

app/test/admin/package_actions_test.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import '../shared/test_models.dart';
99
import '../shared/test_services.dart';
1010

1111
void main() {
12-
// TODO: move package-related tests from api_actions_test.dart
1312
group('package admin actions', () {
1413
testWithProfile('info request', fn: () async {
1514
final client = createPubApiClient(authToken: siteAdminToken);

app/test/admin/package_version_actions_test.dart

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:_pub_shared/data/admin_api.dart';
6+
import 'package:pub_dev/package/backend.dart';
67
import 'package:test/test.dart';
78

89
import '../shared/test_models.dart';
910
import '../shared/test_services.dart';
1011

1112
void main() {
12-
// TODO: move package-version-related tests from api_actions_test.dart
1313
group('package version admin actions', () {
1414
testWithProfile('info request', fn: () async {
1515
final client = createPubApiClient(authToken: siteAdminToken);
@@ -29,5 +29,35 @@ void main() {
2929
}
3030
});
3131
});
32+
33+
testWithProfile('package-version-retraction', fn: () async {
34+
final latest = await packageBackend.getLatestVersion('oxygen');
35+
36+
final api = createPubApiClient(authToken: siteAdminToken);
37+
final result = await api.adminInvokeAction(
38+
'package-version-retraction',
39+
AdminInvokeActionArguments(arguments: {
40+
'package': 'oxygen',
41+
'version': latest!,
42+
'set-retracted': 'true',
43+
}),
44+
);
45+
46+
expect(result.output, {
47+
'before': {
48+
'package': 'oxygen',
49+
'version': latest,
50+
'isRetracted': false,
51+
},
52+
'after': {
53+
'package': 'oxygen',
54+
'version': latest,
55+
'isRetracted': true,
56+
},
57+
});
58+
59+
final newLatest = await packageBackend.getLatestVersion('oxygen');
60+
expect(newLatest != latest, isTrue);
61+
});
3262
});
3363
}

app/test/admin/publisher_actions_test.dart

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:_pub_shared/data/admin_api.dart';
6+
import 'package:pub_dev/account/backend.dart';
7+
import 'package:pub_dev/package/backend.dart';
8+
import 'package:pub_dev/publisher/backend.dart';
69
import 'package:test/test.dart';
710

811
import '../shared/test_models.dart';
912
import '../shared/test_services.dart';
1013

1114
void main() {
12-
// TODO: move publisher-related tests from api_actions_test.dart
1315
group('publisher admin actions', () {
1416
testWithProfile('info request', fn: () async {
1517
final client = createPubApiClient(authToken: siteAdminToken);
@@ -28,5 +30,74 @@ void main() {
2830
},
2931
});
3032
});
33+
34+
testWithProfile(
35+
'creating, listing members and deleting publisher with no packages',
36+
fn: () async {
37+
final client = createPubApiClient(authToken: siteAdminToken);
38+
final p0 = await publisherBackend.getPublisher('other.com');
39+
expect(p0, isNull);
40+
final rs1 = await client.adminInvokeAction(
41+
'publisher-create',
42+
AdminInvokeActionArguments(arguments: {
43+
'publisher': 'other.com',
44+
'member-email': 'user@pub.dev',
45+
}),
46+
);
47+
expect(rs1.output, {
48+
'message': 'Publisher created.',
49+
'publisherId': 'other.com',
50+
'member-email': 'user@pub.dev',
51+
});
52+
final publisherMembersResponse = await client.adminInvokeAction(
53+
'publisher-members-list',
54+
AdminInvokeActionArguments(arguments: {
55+
'publisher': 'other.com',
56+
}),
57+
);
58+
expect(publisherMembersResponse.output, {
59+
'publisher': 'other.com',
60+
'description': '',
61+
'website': 'https://other.com/',
62+
'contact': 'user@pub.dev',
63+
'created': isA<String>(),
64+
'members': [
65+
{'email': 'user@pub.dev', 'role': 'admin', 'userId': isA<String>()}
66+
]
67+
});
68+
final p1 = await publisherBackend.getPublisher('other.com');
69+
expect(p1, isNotNull);
70+
final rs2 = await client.adminInvokeAction('publisher-delete',
71+
AdminInvokeActionArguments(arguments: {'publisher': 'other.com'}));
72+
expect(rs2.output, {
73+
'message': 'Publisher and all members deleted.',
74+
'publisherId': 'other.com',
75+
'members-count': 1,
76+
});
77+
final p2 = await publisherBackend.getPublisher('other.com');
78+
expect(p2, isNull);
79+
});
80+
81+
testWithProfile('remove package from publisher', fn: () async {
82+
final api = createPubApiClient(authToken: siteAdminToken);
83+
final result = await api.adminInvokeAction(
84+
'publisher-package-remove',
85+
AdminInvokeActionArguments(arguments: {'package': 'neon'}),
86+
);
87+
final neon = await packageBackend.lookupPackage('neon');
88+
89+
expect(result.output, {
90+
'previousPublisher': 'example.com',
91+
'package': 'neon',
92+
'uploaders': [
93+
{'email': 'admin@pub.dev', 'userId': neon!.uploaders!.first}
94+
]
95+
});
96+
final packagePublisherInfo =
97+
await packageBackend.getPublisherInfo('neon');
98+
expect(packagePublisherInfo.publisherId, isNull);
99+
final emails = await accountBackend.getEmailsOfUserIds(neon.uploaders!);
100+
expect(emails, {'admin@pub.dev'});
101+
});
31102
});
32103
}

0 commit comments

Comments
 (0)