Skip to content

Test/make snapshot more robust#856

Open
huydo862003 wants to merge 19 commits intomasterfrom
test/make-snapshot-more-robust
Open

Test/make snapshot more robust#856
huydo862003 wants to merge 19 commits intomasterfrom
test/make-snapshot-more-robust

Conversation

@huydo862003
Copy link
Copy Markdown
Contributor

Summary

  • Current snapshots are very fragile:
    • Internal ids get leaked out into the snapshot.
      -> Every time we support some more nodes or trivially modify parsing logic/validation logic -> Node and symbol ids get changed
      -> The snapshots change a lot
      -> This make verification of real behavior changes difficult & tedious.
  • This PR introduces a more human-readable and stable snapshot format.

Issue

(issue link here)

Lasting Changes (Technical)

(please list down: code changes/things that have wide-effect; new libraries/functions added that can be used by others; examples below)

  • (Added class EmailValidator to validate email address' validity)
  • (Added Tenant#is_trial? check)

Checklist

Please check directly on the box once each of these are done

  • Documentation (if necessary)
  • Lint Checks Passed
  • Unit Tests Passed
  • Coverage Tests Passed
  • Integration Tests Passed
  • Code Review

@huydo862003 huydo862003 requested a review from xuantho573 April 7, 2026 04:45
@huydo862003 huydo862003 force-pushed the test/make-snapshot-more-robust branch from 4e1dc7c to 0078110 Compare April 7, 2026 04:56
@huydo862003 huydo862003 force-pushed the test/make-snapshot-more-robust branch 2 times, most recently from 42cdd86 to 31063f4 Compare April 9, 2026 15:05
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 9, 2026

Coverage Report

Commit: d1a0b00

Overall Coverage

Metric Coverage
Lines ✅ 84.53% (5507/6515)
Statements ✅ 83.69% (5879/7025)
Functions ✅ 89.57% (1279/1428)
Branches ⚠️ 75.87% (3107/4095)

Package Coverage

Package Lines Statements Functions Branches
@dbml/dbml-cli ✅ 100.00% ✅ 100.00% ✅ 100.00% ✅ 100.00%
@dbml/dbml-connector ⚠️ 64.62% ⚠️ 64.36% ⚠️ 59.53% ⚠️ 59.09%
@dbml/dbml-core N/A N/A N/A N/A
@dbml/dbml-parse ✅ 87.90% ✅ 86.93% ✅ 93.70% ⚠️ 78.38%

⚠️ Coverage Warnings

The following packages have coverage below 80%:

  • @dbml/dbml-connector: 64.62% line coverage

Files with Coverage Below 80%

@dbml/dbml-connector

9 file(s) below 80% coverage
File Lines Statements Functions Branches
src/connectors/bigquery/index.ts 0.00% 0.00% 0.00% 0.00%
src/utils/credential-loader.ts 0.00% 0.00% 0.00% 0.00%
src/utils/helpers.ts 0.00% 0.00% 0.00% 0.00%
src/connectors/snowflake/index.ts 10.56% 10.31% 0.00% 0.00%
src/utils/parseSchema.ts 46.15% 42.85% 28.57% 27.27%
src/connectors/connector.ts 66.66% 66.66% 100.00% 57.14%
src/connectors/oracle/tables.ts 71.25% 67.39% 100.00% 56.96%
src/connectors/oracle/index.ts 80.00% 80.76% 100.00% 25.00%
src/connectors/oracle/utils.ts 85.71% 85.71% 100.00% 71.42%

@dbml/dbml-parse

37 file(s) below 80% coverage
File Lines Statements Functions Branches
src/compiler/queries/container/scope.ts 0.00% 0.00% 0.00% 100.00%
src/services/diagnostics/provider.ts 0.00% 0.00% 0.00% 0.00%
src/compiler/queries/parse.ts 50.00% 50.00% 50.00% 100.00%
src/core/interpreter/elementInterpreter/project.ts 51.42% 51.42% 100.00% 36.36%
src/core/interpreter/records/utils/data/sqlTypes.ts 56.25% 58.82% 75.00% 46.55%
src/core/analyzer/symbol/utils.ts 56.52% 56.52% 100.00% 50.00%
src/core/analyzer/binder/elementBinder/note.ts 62.50% 64.70% 83.33% 50.00%
src/compiler/queries/utils.ts 64.83% 65.95% 88.88% 47.43%
src/core/interpreter/records/utils/data/values.ts 65.13% 57.14% 72.72% 50.37%
src/compiler/queries/token.ts 66.66% 66.66% 66.66% 100.00%
src/core/analyzer/binder/elementBinder/enum.ts 72.22% 73.68% 100.00% 62.50%
src/core/analyzer/validator/elementValidators/note.ts 72.54% 70.90% 76.92% 68.75%
src/core/analyzer/validator/elementValidators/indexes.ts 73.33% 74.07% 90.90% 59.61%
src/core/analyzer/analyzer.ts 75.00% 66.66% 60.00% 100.00%
src/core/analyzer/symbol/symbolIndex.ts 76.92% 77.50% 92.85% 50.00%
src/core/analyzer/utils.ts 77.77% 76.36% 88.88% 75.00%
src/core/analyzer/binder/elementBinder/project.ts 77.77% 78.94% 100.00% 50.00%
src/core/analyzer/validator/elementValidators/checks.ts 77.77% 79.31% 93.75% 71.87%
src/core/analyzer/validator/elementValidators/records.ts 78.08% 78.66% 93.75% 74.19%
src/core/analyzer/validator/elementValidators/project.ts 78.12% 78.78% 100.00% 56.25%
src/core/utils.ts 78.57% 77.41% 80.00% 60.71%
src/core/analyzer/binder/elementBinder/ref.ts 78.78% 80.00% 90.90% 75.00%
src/core/analyzer/binder/elementBinder/indexes.ts 79.06% 77.77% 90.90% 68.18%
src/core/analyzer/binder/elementBinder/tableGroup.ts 80.00% 80.64% 100.00% 50.00%
src/services/suggestions/utils.ts 80.39% 75.00% 92.85% 68.51%
src/core/interpreter/records/utils/constraints/pk.ts 82.00% 81.53% 92.30% 59.09%
src/core/analyzer/binder/elementBinder/records.ts 82.79% 83.33% 93.75% 71.42%
src/compiler/queries/container/token.ts 83.33% 85.71% 100.00% 75.00%
src/core/analyzer/validator/elementValidators/tablePartial.ts 83.43% 80.72% 87.23% 64.28%
src/core/analyzer/binder/elementBinder/tablePartial.ts 86.00% 86.53% 100.00% 69.23%
src/core/parser/parser.ts 87.05% 87.20% 100.00% 79.32%
src/services/suggestions/recordRowSnippet.ts 88.67% 84.61% 100.00% 78.00%
src/compiler/queries/symbol.ts 91.30% 92.00% 100.00% 78.57%
__tests__/utils/compiler.ts 92.92% 92.75% 100.00% 70.32%
src/core/interpreter/elementInterpreter/sticky_note.ts 95.00% 95.23% 100.00% 66.66%
src/core/analyzer/symbol/symbolTable.ts 100.00% 100.00% 100.00% 75.00%
src/services/definition/provider.ts 100.00% 100.00% 100.00% 75.00%

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.

1 participant