Files
twenty/packages/twenty-oxlint-rules/rules/enforce-module-boundaries.spec.ts
T
Raphaël Bosi c596a5e342 Rename twenty-ui to twenty-ui-deprecated and twenty-new-ui to twenty-ui to prepare package release (#21315)
## Description

Promotes the next-gen UI library (formerly `twenty-new-ui`) to the name
**`twenty-ui`** (v0.1.0, publishable) and renames the old package to
**`twenty-ui-deprecated`**. Rewrites ~1,730 `twenty-ui` imports →
`twenty-ui-deprecated`, updates all configs/CI/Docker/deps, and migrates
twenty-front's `Toggle` to the new package (first consumer) as a
drop-in.

## Next steps
- Wire the `ui/v*` publish dispatch (`cd-deploy-tag.yaml` +
`.yarnrc.yml`), then tag `ui/v0.1.0` to publish.
- Continue migrating components from `twenty-ui-deprecated` →
`twenty-ui`.
2026-06-08 18:12:28 +02:00

82 lines
2.5 KiB
TypeScript

import { RuleTester } from 'oxlint/plugins-dev';
import { rule, RULE_NAME } from './enforce-module-boundaries';
const depConstraints = [
{
sourceTag: 'scope:frontend',
onlyDependOnLibsWithTags: ['scope:shared', 'scope:frontend'],
},
{
sourceTag: 'scope:backend',
onlyDependOnLibsWithTags: ['scope:shared', 'scope:backend'],
},
{
sourceTag: 'scope:shared',
onlyDependOnLibsWithTags: ['scope:shared'],
},
];
const ruleTester = new RuleTester();
ruleTester.run(RULE_NAME, rule, {
valid: [
{
code: "import { isDefined } from 'twenty-shared';",
options: [{ depConstraints }],
filename: '/project/packages/twenty-front/src/utils.ts',
},
{
code: "import { Button } from 'twenty-ui-deprecated';",
options: [{ depConstraints }],
filename: '/project/packages/twenty-front/src/components.tsx',
},
{
code: "import { isDefined } from 'twenty-shared';",
options: [{ depConstraints }],
filename: '/project/packages/twenty-server/src/utils.ts',
},
{
code: "import { helper } from './local';",
options: [{ depConstraints }],
filename: '/project/packages/twenty-front/src/utils.ts',
},
{
code: "import lodash from 'lodash';",
options: [{ depConstraints }],
filename: '/project/packages/twenty-front/src/utils.ts',
},
{
code: "import { isDefined } from 'twenty-shared';",
options: [{ depConstraints: [] }],
filename: '/project/packages/twenty-front/src/utils.ts',
},
],
invalid: [
{
code: "import { ServerService } from 'twenty-server';",
options: [{ depConstraints }],
filename: '/project/packages/twenty-front/src/bad-import.ts',
errors: [{ messageId: 'moduleBoundaryViolation' }],
},
{
code: "import { Component } from 'twenty-front';",
options: [{ depConstraints }],
filename: '/project/packages/twenty-server/src/bad-import.ts',
errors: [{ messageId: 'moduleBoundaryViolation' }],
},
{
code: "import { Component } from 'twenty-front';",
options: [{ depConstraints }],
filename: '/project/packages/twenty-shared/src/bad-import.ts',
errors: [{ messageId: 'moduleBoundaryViolation' }],
},
{
code: "import { ServerThing } from 'twenty-server';",
options: [{ depConstraints }],
filename: '/project/packages/twenty-shared/src/bad-import.ts',
errors: [{ messageId: 'moduleBoundaryViolation' }],
},
],
});