diff --git a/packages/apps-config/src/endpoints/index.spec.ts b/packages/apps-config/src/endpoints/index.spec.ts index fbd6867c0b..4dd518009f 100644 --- a/packages/apps-config/src/endpoints/index.spec.ts +++ b/packages/apps-config/src/endpoints/index.spec.ts @@ -16,7 +16,7 @@ const allEndpoints = createWsEndpoints(undefined, false, false); const INVALID_CHARS = ['%']; describe('WS urls are all valid', (): void => { - allEndpoints + const endpoints = allEndpoints .filter(({ value }) => value && isString(value) && @@ -26,13 +26,12 @@ describe('WS urls are all valid', (): void => { name: text as string, provider: textBy, value - })) - .forEach(({ name, provider, value }) => - it(`${name}:: ${provider}`, (): void => { - assert(value.startsWith('wss://') || value.startsWith('light://substrate-connect/'), `${name}:: ${provider} -> ${value} should start with wss:// or light:// without invalid characters`); - assert(!INVALID_CHARS.some((c) => value.includes(c)), `${value} should not contain invalid characters such as ${INVALID_CHARS.join(', ')}`); - }) - ); + })); + + it.each(endpoints)('$name:: $provider', ({ name, provider, value }): void => { + assert(value.startsWith('wss://') || value.startsWith('light://substrate-connect/'), `${name}:: ${provider} -> ${value} should start with wss:// or light://`); + assert(!INVALID_CHARS.some((c) => value.includes(c)), `${value} should not contain invalid characters such as ${INVALID_CHARS.join(', ')}`); + }); }); describe('urls are sorted', (): void => { @@ -87,19 +86,14 @@ describe('urls are not duplicated', (): void => { return map; }, {} as Record); - Object - .entries(map) - .forEach(([url, paths]) => - it(url, (): void => { - assert(paths.length === 1, `${url} appears multiple times - ${paths.map((p) => `\n\t"${p}"`).join('')}`); - }) - ); + it.each(Object.entries(map))('%s', (url, paths): void => { + assert(paths.length === 1, `${url} appears multiple times - ${paths.map((p) => `\n\t"${p}"`).join('')}`); + }); }); -describe('endpopints do not contain emojis or all uppercase', (): void => { +describe('endpopints naming', (): void => { const emoji = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/; - - allEndpoints + const endpoints = allEndpoints .filter(({ value }) => value && isString(value) && @@ -109,12 +103,27 @@ describe('endpopints do not contain emojis or all uppercase', (): void => { name: text as string, provider: textBy, value - })) - .forEach(({ name, provider }) => - it(`${name}:: ${provider}`, (): void => { - assert(!emoji.test(name), `${name} should not contain any emojis`); - assert(!emoji.test(provider), `${name}:: ${provider} should not contain any emojis`); - assert(!provider.includes(' ') || (provider.toLocaleUpperCase() !== provider), `${name}:: ${provider} should not be all uppercase`); - }) - ); + })); + + describe.each(endpoints)('$name:: $provider', ({ name, provider }): void => { + it('name/provider has no emojis', (): void => { + assert(!emoji.test(name), `${name} should not contain any emojis`); + assert(!emoji.test(provider), `${name}:: ${provider} should not contain any emojis`); + }); + + it('provider not all uppercase', (): void => { + assert(!provider.includes(' ') || (provider.toLocaleUpperCase() !== provider), `${name}:: ${provider} should not be all uppercase`); + }); + + it('does not contain "Parachain', (): void => { + assert(!name.includes('Parachain'), `${name} should not contain "Parachain" (redundant)`); + }); + + it('does not contain a relay name', (): void => { + assert(!name.includes(' ') || !name.includes('Kusama'), `${name} should not contain "Kusama" (redundant)`); + assert(!name.includes(' ') || !name.includes('Polkadot'), `${name} should not contain "Polkadot" (redundant)`); + assert(!name.includes(' ') || !name.includes('Rococo'), `${name} should not contain "Rococo" (redundant)`); + assert(!name.includes(' ') || !name.includes('Westend'), `${name} should not contain "Westend" (redundant)`); + }); + }); }); diff --git a/packages/apps-config/src/endpoints/productionRelayKusama.ts b/packages/apps-config/src/endpoints/productionRelayKusama.ts index 35312db742..96c0fc3627 100644 --- a/packages/apps-config/src/endpoints/productionRelayKusama.ts +++ b/packages/apps-config/src/endpoints/productionRelayKusama.ts @@ -97,7 +97,7 @@ export const prodParasKusama: EndpointOption[] = [ info: 'crab', homepage: 'https://crab.network', paraId: 2105, - text: 'Darwinia Crab Parachain', + text: 'Darwinia Crab', providers: { 'Darwinia Network': 'wss://crab-parachain-rpc.darwinia.network/' } @@ -126,7 +126,7 @@ export const prodParasKusama: EndpointOption[] = [ isUnreachable: true, homepage: 'https://gmordie.com', paraId: 2123, - text: 'GM Parachain', + text: 'GM', providers: { GMorDieDAO: 'wss://kusama.gmordie.com' } @@ -405,7 +405,7 @@ export const prodParasKusama: EndpointOption[] = [ info: 'sora_ksm', homepage: 'https://sora.org/', paraId: 2011, - text: 'SORA Kusama Parachain', + text: 'SORA', providers: { Soramitsu: 'wss://ws.parachain-collator-1.c1.sora2.soramitsu.co.jp' } diff --git a/packages/apps-config/src/endpoints/productionRelayPolkadot.ts b/packages/apps-config/src/endpoints/productionRelayPolkadot.ts index bea7990e01..c73aeaac6b 100644 --- a/packages/apps-config/src/endpoints/productionRelayPolkadot.ts +++ b/packages/apps-config/src/endpoints/productionRelayPolkadot.ts @@ -114,19 +114,19 @@ export const prodParasPolkadot: EndpointOption[] = [ }, { info: 'darwinia', - isUnreachable: true, // https://github.com/polkadot-js/apps/issues/6530 homepage: 'https://darwinia.network/', - paraId: 2003, - text: 'Darwinia Para Backup', + paraId: 2046, + text: 'Darwinia', providers: { 'Darwinia Network': 'wss://parachain-rpc.darwinia.network' } }, { info: 'darwinia', + isUnreachable: true, // https://github.com/polkadot-js/apps/issues/6530 homepage: 'https://darwinia.network/', - paraId: 2046, - text: 'Darwinia Parachain', + paraId: 2003, + text: 'Darwinia Backup', providers: { 'Darwinia Network': 'wss://parachain-rpc.darwinia.network' } @@ -267,7 +267,7 @@ export const prodParasPolkadot: EndpointOption[] = [ { info: 'origintrail-parachain', homepage: 'https://parachain.origintrail.io', - text: 'OriginTrail Parachain', + text: 'OriginTrail', paraId: 2043, providers: { TraceLabs: 'wss://parachain-rpc.origin-trail.network' diff --git a/packages/apps-config/src/endpoints/testing.ts b/packages/apps-config/src/endpoints/testing.ts index a12990ddf7..36fef84009 100644 --- a/packages/apps-config/src/endpoints/testing.ts +++ b/packages/apps-config/src/endpoints/testing.ts @@ -322,7 +322,7 @@ export const testChains: EndpointOption[] = [ }, { info: 'logion', - text: 'logion Parachain Testnet', + text: 'logion Para Testnet', providers: { Logion: 'wss://chimay.logion.network' } diff --git a/packages/apps-config/src/endpoints/testingRelayRococo.ts b/packages/apps-config/src/endpoints/testingRelayRococo.ts index 844b97c5e3..0ba7a55845 100644 --- a/packages/apps-config/src/endpoints/testingRelayRococo.ts +++ b/packages/apps-config/src/endpoints/testingRelayRococo.ts @@ -99,7 +99,7 @@ export const testParasRococo: EndpointOption[] = [ { info: 'Eggnet', paraId: 4006, - text: 'Eggnet Parachain', + text: 'Eggnet', providers: { Webb: 'wss://rococo1.webb.tools' } @@ -107,7 +107,7 @@ export const testParasRococo: EndpointOption[] = [ { info: 'rococoGenshiro', paraId: 2024, - text: 'Genshiro Rococo Testnet', + text: 'Genshiro Testnet', providers: { Equilibrium: 'wss://parachain-testnet.equilab.io/rococo/collator/node1/wss' } @@ -173,14 +173,14 @@ export const testParasRococo: EndpointOption[] = [ info: 'chainoli', homepage: 'https://www.my-oli.com/en/', paraId: 4023, - text: 'OLI Parachain', + text: 'OLI', providers: {} }, { info: 'rococoOriginTrailParachain', homepage: 'https://parachain.origintrail.io', paraId: 2043, - text: 'OriginTrail Parachain Testnet', + text: 'OriginTrail Testnet', providers: { TraceLabs: 'wss://parachain-testnet-rpc.origin-trail.network/' } @@ -188,7 +188,7 @@ export const testParasRococo: EndpointOption[] = [ { info: 'rococoPangolin', paraId: 2105, - text: 'Pangolin Parachain', + text: 'Pangolin', providers: { 'Darwinia Network': 'wss://pangolin-parachain-rpc.darwinia.network' } @@ -237,7 +237,7 @@ export const testParasRococo: EndpointOption[] = [ { info: 'rococoSora', paraId: 2011, - text: 'SORA Rococo Parachain', + text: 'SORA', providers: { Soramitsu: 'wss://ws.parachain-collator-1.c1.stg1.sora2.soramitsu.co.jp' }