Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modular core type #2462

Merged
merged 7 commits into from
Jun 23, 2024
Merged

Modular core type #2462

merged 7 commits into from
Jun 23, 2024

Conversation

jiqiang90
Copy link
Contributor

@jiqiang90 jiqiang90 commented Jun 20, 2024

Description

Part of #2456,
Provide generic type of module, improve import from cli

Fixes # (issue)

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist

  • I have tested locally
  • I have performed a self review of my changes
  • Updated any relevant documentation
  • Linked to any relevant issues
  • I have added tests relevant to my changes
  • Any dependent changes have been merged and published in downstream modules
  • My code is up to date with the base branch
  • I have updated relevant changelogs. We suggest using chan

packages/types-core/src/project/modulars/types.ts Outdated Show resolved Hide resolved
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This package isn't using INetworkCommonModule, there's no type checking to ensure it matches the interface

packages/types-core/CHANGELOG.md Outdated Show resolved Hide resolved
Copy link

github-actions bot commented Jun 20, 2024

Coverage report for .

Caution

Test run failed

St.
Category Percentage Covered / Total
🟡 Statements
65.8% (-4.31% 🔻)
18976/28841
🟡 Branches
78.65% (+0.36% 🔼)
2406/3059
🟡 Functions
67.07% (+4.57% 🔼)
1053/1570
🟡 Lines
65.8% (-4.31% 🔻)
18976/28841
Show new covered files 🐣
St.
File Statements Branches Functions Lines
🟢
... / migrate.ts
85.09% 18.18% 100% 85.09%
🟢
... / migrate-abis.controller.ts
95% 87.5% 100% 95%
🟢
... / constants.ts
100% 100% 100% 100%
🟢
... / index.ts
100% 100% 100% 100%
🟢
... / ethereum.ts
82.05% 83.33% 100% 82.05%
🟢
... / migrate-manifest.controller.ts
88% 73.33% 88.89% 88%
🟢
... / migrate-mapping.controller.ts
100% 100% 100% 100%
🟢
... / migrate-controller.ts
92.31% 84.62% 100% 92.31%
🟢
... / migrate.fixtures.ts
100% 100% 100% 100%
🟢
... / migrate-schema.controller.ts
100% 100% 100% 100%
🔴
... / types.ts
0% 0% 0% 0%
🟢
... / createProject.fixtures.ts
96.88% 80% 100% 96.88%
🟢
... / networkFamily.ts
92.59% 88.89% 100% 92.59%
🟡
... / admin.controller.ts
77.24% 96.3% 78.57% 77.24%
🔴
... / blockRange.ts
46.67% 100% 50% 46.67%
🟢
... / index.ts
100% 100% 100% 100%
🟢
... / dictionary.fixtures.ts
100% 100% 100% 100%
🟢
... / monitor.service.ts
93.97% 87.06% 97.06% 93.97%
🔴
... / sandbox.service.ts
33.33% 50% 25% 33.33%
🔴
... / worker.monitor.service.ts
41.46% 100% 0% 41.46%
🔴
... / process.ts
50% 66.67% 40% 50%
🔴
... / foreceClean.init.ts
47.62% 100% 0% 47.62%
🔴
... / reindex.init.ts
34.48% 100% 0% 34.48%
🟢
... / string.ts
100% 100% 100% 100%
🔴
... / admin.module.ts
0% 0% 0% 0%
🔴
... / datasourceProcessors.ts
0% 0% 0% 0%
🔴
... / index.ts
0% 0% 0% 0%
🔴
... / types.ts
0% 0% 0% 0%
Show files with reduced coverage 🔻
St.
File Statements Branches Functions Lines
🔴
... / deploy.ts
18.91% (-2.24% 🔻)
100%
50% (+50% 🔼)
18.91% (-2.24% 🔻)
🔴
... / publish.ts
44% (-45.33% 🔻)
40% (-17.14% 🔻)
100%
44% (-45.33% 🔻)
🔴
... / deploy-controller.ts
32.49% (-4.98% 🔻)
100% (+22.22% 🔼)
12.5% (-12.5% 🔻)
32.49% (-4.98% 🔻)
🟢
... / generate-controller.ts
97.65%
93.85% (-0.18% 🔻)
100% 97.65%
🟡
... / init-controller.ts
76.21% (+5.73% 🔼)
63.64% (-4.36% 🔻)
61.11% (+7.78% 🔼)
76.21% (+5.73% 🔼)
🔴
... / project-controller.ts
17.81% (-79.45% 🔻)
100% (+40% 🔼)
0% (-100% 🔻)
17.81% (-79.45% 🔻)
🔴
... / publish-controller.ts
59.34% (-20.91% 🔻)
58.62% (-12.49% 🔻)
60% (-40% 🔻)
59.34% (-20.91% 🔻)
🟡
... / load.ts
79.41% (-8.82% 🔻)
66.67% (-19.05% 🔻)
100%
79.41% (-8.82% 🔻)
🟢
... / models.ts
82.22% (-17.22% 🔻)
95.65% (+3.34% 🔼)
76.92% (-23.08% 🔻)
82.22% (-17.22% 🔻)
🔴
... / utils.ts
59.62%
66.67% (-33.33% 🔻)
33.33% 59.62%
🟢
... / model.ts
95.43% (-2.29% 🔻)
100%
80% (+8.57% 🔼)
95.43% (-2.29% 🔻)
🔴
... / models.ts
47.06% (-52.94% 🔻)
100%
0% (-100% 🔻)
47.06% (-52.94% 🔻)
🟡
... / github-reader.ts
65.52% (-23.77% 🔻)
85.71% (+10.71% 🔼)
71.43% (-11.9% 🔻)
65.52% (-23.77% 🔻)
🟡
... / ipfs-reader.ts
62.5% (-23.21% 🔻)
70% (+6.36% 🔼)
71.43% (-11.9% 🔻)
62.5% (-23.21% 🔻)
🟡
... / local-reader.ts
69.77% (-16.28% 🔻)
100% (+37.5% 🔼)
83.33% (-16.67% 🔻)
69.77% (-16.28% 🔻)
🟢
... / reader.ts
81.58% (-7.89% 🔻)
50% (-25% 🔻)
100%
81.58% (-7.89% 🔻)
🔴
... / utils.ts
55.45% (-7.25% 🔻)
78.79% (+5.62% 🔼)
52% (-4% 🔻)
55.45% (-7.25% 🔻)
🔴
... / base.ts
43.43% (-54.57% 🔻)
100%
40% (-40% 🔻)
43.43% (-54.57% 🔻)
🔴
... / models.ts
25.32% (-74.68% 🔻)
100%
0% (-100% 🔻)
25.32% (-74.68% 🔻)
🟢
... / NodeConfig.ts
88.48% (-0.12% 🔻)
77.59% (-2.04% 🔻)
86.96% (+0.91% 🔼)
88.48% (-0.12% 🔻)
🟡
... / ProjectUpgrade.service.ts
73.91% (-13.16% 🔻)
93.67% (+2.31% 🔼)
84% (-7.3% 🔻)
73.91% (-13.16% 🔻)
🟢
... / db.module.ts
89.06% (+0.78% 🔼)
62.5% (-20.83% 🔻)
80%
89.06% (+0.78% 🔼)
🟡
... / migration-helpers.ts
74.54% (-1.48% 🔻)
86.76% (+6.17% 🔼)
90.91%
74.54% (-1.48% 🔻)
🟡
... / sequelizeUtil.ts
79.46% (-11.61% 🔻)
65.38% (-4.99% 🔻)
62.5%
79.46% (-11.61% 🔻)
🟢
... / sync-helper.ts
85.42% (-2.96% 🔻)
88.04%
73.77% (-1.23% 🔻)
85.42% (-2.96% 🔻)
🔴
... / benchmark.service.ts
43.36% (-11.89% 🔻)
66.67%
36.36% (-3.64% 🔻)
43.36% (-11.89% 🔻)
🔴
... / base-block-dispatcher.ts
19% (-28.35% 🔻)
100%
4.35% (-5.65% 🔻)
19% (-28.35% 🔻)
🔴
... / block-dispatcher.ts
26.98% (-14.01% 🔻)
66.67%
25% (-3.57% 🔻)
26.98% (-14.01% 🔻)
🔴
... / worker-block-dispatcher.ts
36.17% (-14.04% 🔻)
100%
25% (-2.27% 🔻)
36.17% (-14.04% 🔻)
🔴
... / coreDictionary.ts
45.33% (-54.67% 🔻)
87.5% (-6.94% 🔻)
77.78% (-22.22% 🔻)
45.33% (-54.67% 🔻)
🟡
... / dictionary.service.ts
67% (-18.15% 🔻)
80% (-5.71% 🔻)
83.33% (-7.58% 🔻)
67% (-18.15% 🔻)
🟡
... / dictionaryV1.ts
75.1% (-18.13% 🔻)
76.09% (-2.17% 🔻)
91.67% (-8.33% 🔻)
75.1% (-18.13% 🔻)
🟡
... / dictionaryV2.ts
67.37% (-14.31% 🔻)
68% (+2.78% 🔼)
88.89% (-11.11% 🔻)
67.37% (-14.31% 🔻)
🔴
... / ds-processor.service.ts
33.48% (-28.61% 🔻)
73.33% (-1.67% 🔻)
58.33% (-29.17% 🔻)
33.48% (-28.61% 🔻)
🔴
... / dynamic-ds.service.ts
59.84% (-30.35% 🔻)
65% (-1.67% 🔻)
80% (-5.71% 🔻)
59.84% (-30.35% 🔻)
🟢
... / inMemoryCache.service.ts
86.21% (-13.79% 🔻)
100%
75% (-25% 🔻)
86.21% (-13.79% 🔻)
🔴
... / indexer.manager.ts
16.13% (-17.08% 🔻)
100%
10% (-2.5% 🔻)
16.13% (-17.08% 🔻)
🟢
... / PoiBlock.ts
83.87% (-14.52% 🔻)
96.55%
75% (-25% 🔻)
83.87% (-14.52% 🔻)
🔴
... / poi.service.ts
56.64% (+32.71% 🔼)
55.56% (-44.44% 🔻)
80% (+51.43% 🔼)
56.64% (+32.71% 🔼)
🔴
... / poiModel.ts
40% (-23.64% 🔻)
71.43%
44.44% (-12.7% 🔻)
40% (-23.64% 🔻)
🔴
... / poiSync.service.ts
55.88% (-31% 🔻)
77.61% (+1.05% 🔼)
88.89% (-3.42% 🔻)
55.88% (-31% 🔻)
🟡
... / project.service.ts
65.82% (-14.18% 🔻)
70.18%
80.77% (-3.23% 🔻)
65.82% (-14.18% 🔻)
🟡
... / sandbox.ts
60.49% (-7.49% 🔻)
60% (+2.86% 🔼)
57.14% (-4.4% 🔻)
60.49% (-7.49% 🔻)
🔴
... / smartBatch.service.ts
10.43% (-13.91% 🔻)
100%
12.5% (-1.79% 🔻)
10.43% (-13.91% 🔻)
🔴
... / entity.ts
19.23% (-42.31% 🔻)
100% 0%
19.23% (-42.31% 🔻)
🔴
... / store.ts
13.11% (-19.09% 🔻)
100% 0%
13.11% (-19.09% 🔻)
🟡
... / cacheModel.ts
69.31% (-15.76% 🔻)
87.5% (+9.19% 🔼)
71.43% (-4.76% 🔻)
69.31% (-15.76% 🔻)
🟡
... / cachePoi.ts
75.53% (-18.09% 🔻)
88.89%
71.43% (-11.9% 🔻)
75.53% (-18.09% 🔻)
🟢
... / cacheable.ts
89.66% (-0.97% 🔻)
75% 100%
89.66% (-0.97% 🔻)
🟡
... / csvStore.service.ts
76.92% (-14.1% 🔻)
80%
80% (-20% 🔻)
76.92% (-14.1% 🔻)
🟢
... / test.runner.ts
94.9% (-4.43% 🔻)
77.78% (+4.44% 🔼)
75% (-25% 🔻)
94.9% (-4.43% 🔻)
🔴
... / testing.service.ts
12% (-16.57% 🔻)
100% 0%
12% (-16.57% 🔻)
🟡
... / unfinalizedBlocks.service.ts
63.19% (-20.79% 🔻)
96.72%
88% (-3.67% 🔻)
63.19% (-20.79% 🔻)
🔴
... / worker.builder.ts
59.83% (-19.36% 🔻)
65.38% 80%
59.83% (-19.36% 🔻)
🔴
... / worker.cache.service.ts
48.78% (-9.76% 🔻)
100% 0%
48.78% (-9.76% 🔻)
🔴
... / worker.connectionPoolState.manager.ts
38.21% (-22.76% 🔻)
100% 0%
38.21% (-22.76% 🔻)
🔴
... / worker.dynamic-ds.service.ts
44.44% (-17.78% 🔻)
100% 0%
44.44% (-17.78% 🔻)
🔴
... / worker.service.ts
20.35% (-24.29% 🔻)
100% 0%
20.35% (-24.29% 🔻)
🟢
... / worker.store.service.ts
80% (-2.61% 🔻)
100% 50%
80% (-2.61% 🔻)
🔴
... / worker.ts
41.82% (-0.63% 🔻)
100% 0%
41.82% (-0.63% 🔻)
🔴
... / worker.unfinalizedBlocks.service.ts
33.33% (-66.67% 🔻)
100%
0% (-100% 🔻)
33.33% (-66.67% 🔻)
🔴
... / logger.ts
44.74% (-19.74% 🔻)
33.33%
40% (+20% 🔼)
44.74% (-19.74% 🔻)
🟡
... / meta.service.ts
68.57% (-0.95% 🔻)
100% (+20% 🔼)
36.36% (-3.64% 🔻)
68.57% (-0.95% 🔻)
🔴
... / forceClean.service.ts
22.08% (-4.24% 🔻)
100% 0%
22.08% (-4.24% 🔻)
🔴
... / reindex.service.ts
14.73% (-18.6% 🔻)
100% 0%
14.73% (-18.6% 🔻)
🟡
... / autoQueue.ts
60.3% (-28.09% 🔻)
85.11%
73.08% (-6.09% 🔻)
60.3% (-28.09% 🔻)
🟡
... / blocks.ts
77.78% (-22.22% 🔻)
88.89%
66.67% (-33.33% 🔻)
77.78% (-22.22% 🔻)
🟡
... / project.ts
67.11% (-6.27% 🔻)
58.49% (-16.09% 🔻)
77.78%
67.11% (-6.27% 🔻)
🟢
... / promise.ts
86.44% (-5.32% 🔻)
100% (+13.64% 🔼)
71.43% (-14.29% 🔻)
86.44% (-5.32% 🔻)
🔴
... / yargs.ts
44.38% (-1.11% 🔻)
100% 14.29%
44.38% (-1.11% 🔻)
🟢
... / SubqueryProject.ts
93.33% (-2.19% 🔻)
46.67% (-35.69% 🔻)
87.5% (+1.79% 🔼)
93.33% (-2.19% 🔻)
🟡
... / apiPromise.connection.ts
77.08% (+8% 🔼)
50% (-30% 🔻)
62.5% (+19.64% 🔼)
77.08% (+8% 🔼)
🔴
... / worker-block-dispatcher.service.ts
24.64% (-12.32% 🔻)
100% 0%
24.64% (-12.32% 🔻)
🟢
... / substrateDictionary.service.ts
98.06% (+7.49% 🔼)
71.43% (-1.3% 🔻)
100% (+20% 🔼)
98.06% (+7.49% 🔼)
🟢
... / substrateDictionaryV1.ts
80.26% (-5.22% 🔻)
77.78% (+8.01% 🔼)
76.92% (-6.41% 🔻)
80.26% (-5.22% 🔻)
🟡
... / substrateDictionaryV2.ts
73.03% (-2.48% 🔻)
75% 33.33%
73.03% (-2.48% 🔻)
🟢
... / fetch.module.ts
90% (-1.88% 🔻)
50% (-25% 🔻)
100%
90% (-1.88% 🔻)
🔴
... / indexer.manager.ts
56.35% (-1.2% 🔻)
100%
20% (+10.91% 🔼)
56.35% (-1.2% 🔻)
🟢
... / runtimeService.ts
94.29% (+2.08% 🔼)
81.82% (-7.07% 🔻)
100% (+20% 🔼)
94.29% (+2.08% 🔼)
🔴
... / http.ts
49.03% (-30.89% 🔻)
40%
28.57% (-2.2% 🔻)
49.03% (-30.89% 🔻)
🟢
... / project.ts
88.73% (-0.16% 🔻)
68.18% 87.5%
88.73% (-0.16% 🔻)
🟢
... / buffer.ts
95.12% (-4.88% 🔻)
95.65% (-4.35% 🔻)
85.71% (+1.5% 🔼)
95.12% (-4.88% 🔻)
🟢
... / entities.ts
85.4% (-2.92% 🔻)
74.77% (-11.31% 🔻)
100%
85.4% (-2.92% 🔻)
🟡
... / logger.ts
69.01% (-0.59% 🔻)
50% (-5% 🔻)
78.57% (+3.57% 🔼)
69.01% (-0.59% 🔻)

Test suite run failed

Failed tests: 6/556. Failed suites: 4/98.
  ● Building dictionary query entries › supports block handlers with modulo filter

    expect(received).toEqual(expected) // deep equality

    - Expected  - 4
    + Received  + 4

    @@ -13,16 +13,16 @@
          "entity": "extrinsics",
        },
        Object {
          "conditions": Array [
            Object {
    -         "field": "module",
    -         "value": "module",
    -       },
    -       Object {
              "field": "event",
              "value": "event",
    +       },
    +       Object {
    +         "field": "module",
    +         "value": "module",
            },
          ],
          "entity": "events",
        },
      ]

      130 |       () => undefined,
      131 |     );
    > 132 |     expect(result1).toEqual([
          |                     ^
      133 |       {
      134 |         entity: 'extrinsics',
      135 |         conditions: [

      at Object.<anonymous> (packages/node/src/indexer/dictionary/v1/substrateDictionaryV1.spec.ts:132:21)


  ● Codegen can generate schema › Should dedupe enums

    ENOENT: no such file or directory, open '/home/runner/work/subql/subql/packages/cli/test/schemaTest/src/types/models/foo.ts'




  ● Cli publish › should upload appropriate project to IPFS

    Publish project to default IPFS failed

      172 |     const results = ipfsWrite.addAll(contents, {pin: true, cidVersion: 0, wrapWithDirectory: isMultichain});
      173 |     for await (const result of results) {
    > 174 |       fileCidMap.set(result.path, result.cid.toString());
          |               ^
      175 |
      176 |       await ipfsWrite.pin.remote.add(result.cid, {service: PIN_SERVICE}).catch((e) => {
      177 |         console.warn(

      at packages/cli/src/controller/publish-controller.ts:174:15
          at async Promise.all (index 0)
      at async uploadFile (packages/cli/src/controller/publish-controller.ts:177:30)
      at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:100:26)
      at async /home/runner/work/subql/subql/packages/cli/src/controller/publish-controller.ts:105:26
          at async Promise.all (index 1)
      at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:103:9)
      at async uploadToIpfs (packages/cli/src/controller/publish-controller.ts:70:28)
      at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:33:21)

    Cause:
    HTTPError: <html>
    <head><title>403 Forbidden</title></head>
    <body>
    <center><h1>403 Forbidden</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>

      175 |
      176 |       await ipfsWrite.pin.remote.add(result.cid, {service: PIN_SERVICE}).catch((e) => {
    > 177 |         console.warn(
          |                      ^
      178 |           `Failed to pin file ${result.path}. There might be problems with this file being accessible later. ${e}`
      179 |         );
      180 |       });

      at Object.errorHandler [as handleError] (node_modules/ipfs-http-client/cjs/src/lib/core.js:84:15)
      at async Client.fetch (node_modules/ipfs-http-client/node_modules/ipfs-utils/src/http.js:161:9)
      at async addAll (node_modules/ipfs-http-client/cjs/src/add-all.js:21:17)
      at async Object.last [as default] (node_modules/it-last/index.js:13:20)
      at async Object.add (node_modules/ipfs-http-client/cjs/src/add.js:18:14)
          at async Promise.all (index 0)
      at async uploadFile (packages/cli/src/controller/publish-controller.ts:177:30)
      at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:100:26)
      at async /home/runner/work/subql/subql/packages/cli/src/controller/publish-controller.ts:105:26
          at async Promise.all (index 1)
      at async replaceFileReferences (packages/cli/src/controller/publish-controller.ts:103:9)
      at async uploadToIpfs (packages/cli/src/controller/publish-controller.ts:70:28)
      at async Object.<anonymous> (packages/cli/src/controller/publish-controller.spec.ts:33:21)


  ● Intergration test - Publish › overwrites any exisiting CID files

    thrown: "Exceeded timeout of 300000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      28 |   it('overwrites any exisiting CID files', async () => {
      29 |     const initCID = 'QmWLxg7xV7ZWUyc7ZxZ8XuQQ7NmH8WQGXzg7VZ3QQNqF-testing';
    > 30 |     const cidFilePath = path.resolve(projectDir, '.project-cid');
         |     ^
      31 |     await fs.promises.writeFile(cidFilePath, initCID);
      32 |     await Publish.run(['-f', projectDir, '-o']);
      33 |     const cidValue = await fs.promises.readFile(cidFilePath, 'utf8');

      at packages/cli/src/commands/publish.test.ts:30:5
      at Object.<anonymous> (packages/cli/src/commands/publish.test.ts:15:1)

  ● Intergration test - Publish › create ipfsCID file stored in local with dictiory path

    thrown: "Exceeded timeout of 300000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      36 |
      37 |   it('create ipfsCID file stored in local with dictiory path', async () => {
    > 38 |     await Publish.run(['-f', projectDir]);
         |     ^
      39 |     const cidFile = path.resolve(projectDir, '.project-cid');
      40 |     const fileExists = fs.existsSync(cidFile);
      41 |     const IPFScontent = await fs.promises.readFile(cidFile, 'utf8');

      at packages/cli/src/commands/publish.test.ts:38:5
      at Object.<anonymous> (packages/cli/src/commands/publish.test.ts:15:1)

  ● Intergration test - Publish › file name consistent with manfiest file name, if -f <manifest path> is used

    thrown: "Exceeded timeout of 300000 ms for a test.
    Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

      45 |
      46 |   // Run this last because it modifies the project
    > 47 |   it('file name consistent with manfiest file name, if -f <manifest path> is used', async () => {
         |     ^
      48 |     const manifestPath = path.resolve(projectDir, 'project.yaml');
      49 |     const testManifestPath = path.resolve(projectDir, 'test.yaml');
      50 |     fs.renameSync(manifestPath, testManifestPath);

      at packages/cli/src/commands/publish.test.ts:47:5
      at Object.<anonymous> (packages/cli/src/commands/publish.test.ts:15:1)

Report generated by 🧪jest coverage report action from 453c80e

@jiqiang90 jiqiang90 merged commit 3c4dd4b into main Jun 23, 2024
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants