|
|
@@ -0,0 +1,56 @@
|
|
|
+/* eslint-disable no-console */
|
|
|
+import {
|
|
|
+ bootstrapWorker,
|
|
|
+ ChannelService,
|
|
|
+ CurrencyCode,
|
|
|
+ isGraphQlErrorResult,
|
|
|
+ LanguageCode,
|
|
|
+ RequestContextService,
|
|
|
+ RoleService,
|
|
|
+} from '@vendure/core';
|
|
|
+
|
|
|
+import { devConfig } from '../dev-config';
|
|
|
+
|
|
|
+const CHANNEL_COUNT = 1001;
|
|
|
+
|
|
|
+generateManyChannels()
|
|
|
+ .then(() => process.exit(0))
|
|
|
+ .catch(() => process.exit(1));
|
|
|
+
|
|
|
+// Used for testing scenarios where there are many channels
|
|
|
+// such as https://github.com/vendure-ecommerce/vendure/issues/2233
|
|
|
+async function generateManyChannels() {
|
|
|
+ const { app } = await bootstrapWorker(devConfig);
|
|
|
+ const requestContextService = app.get(RequestContextService);
|
|
|
+ const channelService = app.get(ChannelService);
|
|
|
+ const roleService = app.get(RoleService);
|
|
|
+
|
|
|
+ const ctxAdmin = await requestContextService.create({
|
|
|
+ apiType: 'admin',
|
|
|
+ });
|
|
|
+
|
|
|
+ const superAdminRole = await roleService.getSuperAdminRole(ctxAdmin);
|
|
|
+ const customerRole = await roleService.getCustomerRole(ctxAdmin);
|
|
|
+
|
|
|
+ for (let i = CHANNEL_COUNT; i > 0; i--) {
|
|
|
+ const channel = await channelService.create(ctxAdmin, {
|
|
|
+ code: `channel-test-${i}`,
|
|
|
+ token: `channel--test-${i}`,
|
|
|
+ defaultLanguageCode: LanguageCode.en,
|
|
|
+ availableLanguageCodes: [LanguageCode.en],
|
|
|
+ pricesIncludeTax: true,
|
|
|
+ defaultCurrencyCode: CurrencyCode.USD,
|
|
|
+ availableCurrencyCodes: [CurrencyCode.USD],
|
|
|
+ sellerId: 1,
|
|
|
+ defaultTaxZoneId: 1,
|
|
|
+ defaultShippingZoneId: 1,
|
|
|
+ });
|
|
|
+ if (isGraphQlErrorResult(channel)) {
|
|
|
+ console.log(channel.message);
|
|
|
+ } else {
|
|
|
+ console.log(`Created channel ${channel.code}`);
|
|
|
+ await roleService.assignRoleToChannel(ctxAdmin, superAdminRole.id, channel.id);
|
|
|
+ await roleService.assignRoleToChannel(ctxAdmin, customerRole.id, channel.id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|