@contember/schema-utils 2.0.0-alpha.32 → 2.0.0-alpha.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/development/index.cjs.map +1 -1
  2. package/dist/development/index.js.map +1 -1
  3. package/dist/development/src/acl/AllowAllPermissionFactory.cjs.map +1 -1
  4. package/dist/development/src/acl/AllowAllPermissionFactory.js.map +1 -1
  5. package/dist/development/src/acl/PredicateDefinitionProcessor.cjs.map +1 -1
  6. package/dist/development/src/acl/PredicateDefinitionProcessor.js.map +1 -1
  7. package/dist/development/src/acl/schemaUtils.cjs.map +1 -1
  8. package/dist/development/src/acl/schemaUtils.js.map +1 -1
  9. package/dist/development/src/dataUtils.cjs.map +1 -1
  10. package/dist/development/src/dataUtils.js.map +1 -1
  11. package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.cjs.map +1 -1
  12. package/dist/development/src/definition-generator/AclDefinitionCodeGenerator.js.map +1 -1
  13. package/dist/development/src/definition-generator/DefinitionCodeGenerator.cjs.map +1 -1
  14. package/dist/development/src/definition-generator/DefinitionCodeGenerator.js.map +1 -1
  15. package/dist/development/src/definition-generator/DefinitionNamingConventions.cjs.map +1 -1
  16. package/dist/development/src/definition-generator/DefinitionNamingConventions.js.map +1 -1
  17. package/dist/development/src/definition-generator/TsDefinitionGenerator.cjs.map +1 -1
  18. package/dist/development/src/definition-generator/TsDefinitionGenerator.js.map +1 -1
  19. package/dist/development/src/lax/LaxSchemaConverter.cjs.map +1 -1
  20. package/dist/development/src/lax/LaxSchemaConverter.js.map +1 -1
  21. package/dist/development/src/lax/schema.cjs.map +1 -1
  22. package/dist/development/src/lax/schema.js.map +1 -1
  23. package/dist/development/src/model/NamingConventions.cjs.map +1 -1
  24. package/dist/development/src/model/NamingConventions.js.map +1 -1
  25. package/dist/development/src/model/modelUtils.cjs.map +1 -1
  26. package/dist/development/src/model/modelUtils.js.map +1 -1
  27. package/dist/development/src/model/resolveDefaultColumnType.cjs.map +1 -1
  28. package/dist/development/src/model/resolveDefaultColumnType.js.map +1 -1
  29. package/dist/development/src/schemaFilter.cjs.map +1 -1
  30. package/dist/development/src/schemaFilter.js.map +1 -1
  31. package/dist/development/src/schemaNormalizer.cjs.map +1 -1
  32. package/dist/development/src/schemaNormalizer.js.map +1 -1
  33. package/dist/development/src/type-schema/acl.cjs.map +1 -1
  34. package/dist/development/src/type-schema/acl.js.map +1 -1
  35. package/dist/development/src/type-schema/actions.cjs.map +1 -1
  36. package/dist/development/src/type-schema/actions.js.map +1 -1
  37. package/dist/development/src/type-schema/condition.cjs.map +1 -1
  38. package/dist/development/src/type-schema/condition.js.map +1 -1
  39. package/dist/development/src/type-schema/model.cjs.map +1 -1
  40. package/dist/development/src/type-schema/model.js.map +1 -1
  41. package/dist/development/src/type-schema/settings.cjs.map +1 -1
  42. package/dist/development/src/type-schema/settings.js.map +1 -1
  43. package/dist/development/src/type-schema/validation.cjs.map +1 -1
  44. package/dist/development/src/type-schema/validation.js.map +1 -1
  45. package/dist/development/src/type-schema/where.cjs.map +1 -1
  46. package/dist/development/src/type-schema/where.js.map +1 -1
  47. package/dist/development/src/utils/deepCompare.cjs.map +1 -1
  48. package/dist/development/src/utils/deepCompare.js.map +1 -1
  49. package/dist/development/src/utils/printJsValue.cjs.map +1 -1
  50. package/dist/development/src/utils/printJsValue.js.map +1 -1
  51. package/dist/development/src/validation/AclValidator.cjs.map +1 -1
  52. package/dist/development/src/validation/AclValidator.js.map +1 -1
  53. package/dist/development/src/validation/ActionsValidator.cjs.map +1 -1
  54. package/dist/development/src/validation/ActionsValidator.js.map +1 -1
  55. package/dist/development/src/validation/MembershipResolver.cjs.map +1 -1
  56. package/dist/development/src/validation/MembershipResolver.js.map +1 -1
  57. package/dist/development/src/validation/ModelValidator.cjs.map +1 -1
  58. package/dist/development/src/validation/ModelValidator.js.map +1 -1
  59. package/dist/development/src/validation/SchemaValidator.cjs.map +1 -1
  60. package/dist/development/src/validation/SchemaValidator.js.map +1 -1
  61. package/dist/development/src/validation/ValidationValidator.cjs.map +1 -1
  62. package/dist/development/src/validation/ValidationValidator.js.map +1 -1
  63. package/dist/development/src/validation/errors.cjs.map +1 -1
  64. package/dist/development/src/validation/errors.js.map +1 -1
  65. package/dist/production/index.cjs.map +1 -1
  66. package/dist/production/index.js.map +1 -1
  67. package/dist/production/src/acl/AllowAllPermissionFactory.cjs.map +1 -1
  68. package/dist/production/src/acl/AllowAllPermissionFactory.js.map +1 -1
  69. package/dist/production/src/acl/PredicateDefinitionProcessor.cjs.map +1 -1
  70. package/dist/production/src/acl/PredicateDefinitionProcessor.js.map +1 -1
  71. package/dist/production/src/acl/schemaUtils.cjs.map +1 -1
  72. package/dist/production/src/acl/schemaUtils.js.map +1 -1
  73. package/dist/production/src/dataUtils.cjs.map +1 -1
  74. package/dist/production/src/dataUtils.js.map +1 -1
  75. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.cjs.map +1 -1
  76. package/dist/production/src/definition-generator/AclDefinitionCodeGenerator.js.map +1 -1
  77. package/dist/production/src/definition-generator/DefinitionCodeGenerator.cjs.map +1 -1
  78. package/dist/production/src/definition-generator/DefinitionCodeGenerator.js.map +1 -1
  79. package/dist/production/src/definition-generator/DefinitionNamingConventions.cjs.map +1 -1
  80. package/dist/production/src/definition-generator/DefinitionNamingConventions.js.map +1 -1
  81. package/dist/production/src/definition-generator/TsDefinitionGenerator.cjs.map +1 -1
  82. package/dist/production/src/definition-generator/TsDefinitionGenerator.js.map +1 -1
  83. package/dist/production/src/lax/LaxSchemaConverter.cjs.map +1 -1
  84. package/dist/production/src/lax/LaxSchemaConverter.js.map +1 -1
  85. package/dist/production/src/lax/schema.cjs.map +1 -1
  86. package/dist/production/src/lax/schema.js.map +1 -1
  87. package/dist/production/src/model/NamingConventions.cjs.map +1 -1
  88. package/dist/production/src/model/NamingConventions.js.map +1 -1
  89. package/dist/production/src/model/modelUtils.cjs.map +1 -1
  90. package/dist/production/src/model/modelUtils.js.map +1 -1
  91. package/dist/production/src/model/resolveDefaultColumnType.cjs.map +1 -1
  92. package/dist/production/src/model/resolveDefaultColumnType.js.map +1 -1
  93. package/dist/production/src/schemaFilter.cjs.map +1 -1
  94. package/dist/production/src/schemaFilter.js.map +1 -1
  95. package/dist/production/src/schemaNormalizer.cjs.map +1 -1
  96. package/dist/production/src/schemaNormalizer.js.map +1 -1
  97. package/dist/production/src/type-schema/acl.cjs.map +1 -1
  98. package/dist/production/src/type-schema/acl.js.map +1 -1
  99. package/dist/production/src/type-schema/actions.cjs.map +1 -1
  100. package/dist/production/src/type-schema/actions.js.map +1 -1
  101. package/dist/production/src/type-schema/condition.cjs.map +1 -1
  102. package/dist/production/src/type-schema/condition.js.map +1 -1
  103. package/dist/production/src/type-schema/model.cjs.map +1 -1
  104. package/dist/production/src/type-schema/model.js.map +1 -1
  105. package/dist/production/src/type-schema/settings.cjs.map +1 -1
  106. package/dist/production/src/type-schema/settings.js.map +1 -1
  107. package/dist/production/src/type-schema/validation.cjs.map +1 -1
  108. package/dist/production/src/type-schema/validation.js.map +1 -1
  109. package/dist/production/src/type-schema/where.cjs.map +1 -1
  110. package/dist/production/src/type-schema/where.js.map +1 -1
  111. package/dist/production/src/utils/deepCompare.cjs.map +1 -1
  112. package/dist/production/src/utils/deepCompare.js.map +1 -1
  113. package/dist/production/src/utils/printJsValue.cjs.map +1 -1
  114. package/dist/production/src/utils/printJsValue.js.map +1 -1
  115. package/dist/production/src/validation/AclValidator.cjs.map +1 -1
  116. package/dist/production/src/validation/AclValidator.js.map +1 -1
  117. package/dist/production/src/validation/ActionsValidator.cjs.map +1 -1
  118. package/dist/production/src/validation/ActionsValidator.js.map +1 -1
  119. package/dist/production/src/validation/MembershipResolver.cjs.map +1 -1
  120. package/dist/production/src/validation/MembershipResolver.js.map +1 -1
  121. package/dist/production/src/validation/ModelValidator.cjs.map +1 -1
  122. package/dist/production/src/validation/ModelValidator.js.map +1 -1
  123. package/dist/production/src/validation/SchemaValidator.cjs.map +1 -1
  124. package/dist/production/src/validation/SchemaValidator.js.map +1 -1
  125. package/dist/production/src/validation/ValidationValidator.cjs.map +1 -1
  126. package/dist/production/src/validation/ValidationValidator.js.map +1 -1
  127. package/dist/production/src/validation/errors.cjs.map +1 -1
  128. package/dist/production/src/validation/errors.js.map +1 -1
  129. package/dist/tests/cases/unit/schemas/acl.d.ts +1 -1
  130. package/dist/tests/cases/unit/schemas/complex.d.ts +1 -1
  131. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  132. package/dist/types/tsconfig.tsbuildinfo +1 -1
  133. package/package.json +5 -5
  134. package/tests/cases/unit/conditionSchema.test.ts +8 -8
  135. package/tests/cases/unit/deepCompare.test.ts +4 -4
  136. package/tests/cases/unit/laxSchemaConverter.test.ts +4 -4
  137. package/tests/cases/unit/membershipResolver.test.ts +17 -17
  138. package/tests/cases/unit/modelSchema.test.ts +3 -3
  139. package/tests/cases/unit/modelValidator.test.ts +3 -3
  140. package/tests/cases/unit/printJsvalue.test.ts +49 -61
  141. package/tests/cases/unit/schemas/acl.ts +7 -7
  142. package/tests/cases/unit/schemas/complex.ts +7 -7
  143. package/tests/cases/unit/tsDefinitionGenerator.test.ts +1 -1
  144. package/tests/cases/unit/whereSchema.test.ts +10 -10
@@ -1,4 +1,4 @@
1
- import { assert, test } from 'vitest'
1
+ import { expect, test } from 'bun:test'
2
2
  import { MembershipResolver, MembershipValidationErrorType } from '../../../src'
3
3
  import { Acl } from '@contember/schema'
4
4
 
@@ -17,8 +17,8 @@ test('read membership with entity variable', () => {
17
17
  }, [
18
18
  { role: 'editor', variables: [{ name: 'localeID', values: [id1] }] },
19
19
  ], MembershipResolver.UnknownIdentity)
20
- assert.lengthOf(result.errors, 0)
21
- assert.deepStrictEqual(result.memberships, [
20
+ expect(result.errors).toStrictEqual([])
21
+ expect(result.memberships).toStrictEqual([
22
22
  { role: 'editor', variables: [{ name: 'localeID', condition: { in: [id1] } }] },
23
23
  ])
24
24
  })
@@ -37,13 +37,13 @@ test('read fails when variable is not provided', () => {
37
37
  }, [
38
38
  { role: 'editor', variables: [] },
39
39
  ], MembershipResolver.UnknownIdentity)
40
- assert.deepStrictEqual(result.errors, [{
40
+ expect(result.errors).toEqual([{
41
41
  error: MembershipValidationErrorType.VARIABLE_EMPTY,
42
42
  role: 'editor',
43
43
  variable: 'localeID',
44
44
  }])
45
45
 
46
- assert.deepStrictEqual(result.memberships, [
46
+ expect(result.memberships).toStrictEqual([
47
47
  { role: 'editor', variables: [{ name: 'localeID', condition: { never: true } }] },
48
48
  ])
49
49
  })
@@ -64,8 +64,8 @@ test('read membership with predefined variable', () => {
64
64
  ], {
65
65
  identityId: id1,
66
66
  })
67
- assert.lengthOf(result.errors, 0)
68
- assert.deepStrictEqual(result.memberships, [
67
+ expect(result.errors).toStrictEqual([])
68
+ expect(result.memberships).toStrictEqual([
69
69
  { role: 'editor', variables: [{ name: 'self', condition: { in: [id1] } }] },
70
70
  ])
71
71
  })
@@ -84,8 +84,8 @@ test('read membership with condition variable', () => {
84
84
  }, [
85
85
  { role: 'editor', variables: [{ name: 'cond', values: [JSON.stringify({ eq: 'foo' })] }] },
86
86
  ], MembershipResolver.UnknownIdentity)
87
- assert.lengthOf(result.errors, 0)
88
- assert.deepStrictEqual(result.memberships, [
87
+ expect(result.errors).toStrictEqual([])
88
+ expect(result.memberships).toStrictEqual([
89
89
  { role: 'editor', variables: [{ name: 'cond', condition: { eq: 'foo' } }] },
90
90
  ])
91
91
  })
@@ -105,13 +105,13 @@ test('fails on invalid condition', () => {
105
105
  { role: 'editor', variables: [{ name: 'cond', values: [JSON.stringify('abcd')] }] },
106
106
  ], MembershipResolver.UnknownIdentity)
107
107
 
108
- assert.deepStrictEqual(result.errors, [{
108
+ expect(result.errors).toEqual([{
109
109
  error: MembershipValidationErrorType.VARIABLE_INVALID,
110
110
  role: 'editor',
111
111
  variable: 'cond',
112
112
  }])
113
113
 
114
- assert.deepStrictEqual(result.memberships, [
114
+ expect(result.memberships).toStrictEqual([
115
115
  { role: 'editor', variables: [{ name: 'cond', condition: { never: true } }] },
116
116
  ])
117
117
  })
@@ -127,13 +127,13 @@ test('fails on undefined role', () => {
127
127
  identityId: id1,
128
128
  })
129
129
 
130
- assert.deepStrictEqual(result.errors, [{
130
+ expect(result.errors).toEqual([{
131
131
  error: MembershipValidationErrorType.ROLE_NOT_FOUND,
132
132
  role: 'editor',
133
133
  variable: undefined,
134
134
  }])
135
135
 
136
- assert.deepStrictEqual(result.memberships, [])
136
+ expect(result.memberships).toStrictEqual([])
137
137
  })
138
138
 
139
139
  test('fails on undefined variable', () => {
@@ -149,13 +149,13 @@ test('fails on undefined variable', () => {
149
149
  { role: 'editor', variables: [{ name: 'cond', values: [JSON.stringify('abcd')] }] },
150
150
  ], MembershipResolver.UnknownIdentity)
151
151
 
152
- assert.deepStrictEqual(result.errors, [{
152
+ expect(result.errors).toEqual([{
153
153
  error: MembershipValidationErrorType.VARIABLE_NOT_FOUND,
154
154
  role: 'editor',
155
155
  variable: 'cond',
156
156
  }])
157
157
 
158
- assert.deepStrictEqual(result.memberships, [
158
+ expect(result.memberships).toStrictEqual([
159
159
  { role: 'editor', variables: [] },
160
160
  ])
161
161
  })
@@ -175,9 +175,9 @@ test('use fallback value', () => {
175
175
  }, [
176
176
  { role: 'editor', variables: [] },
177
177
  ], MembershipResolver.UnknownIdentity)
178
- assert.deepStrictEqual(result.errors, [])
178
+ expect(result.errors).toStrictEqual([])
179
179
 
180
- assert.deepStrictEqual(result.memberships, [
180
+ expect(result.memberships).toStrictEqual([
181
181
  { role: 'editor', variables: [{ name: 'localeID', condition: { always: true } }] },
182
182
  ])
183
183
  })
@@ -1,4 +1,4 @@
1
- import { assert, describe, test } from 'vitest'
1
+ import { expect, describe, test } from 'bun:test'
2
2
  import { modelSchema } from '../../../src/type-schema'
3
3
  import { Model } from '@contember/schema'
4
4
 
@@ -51,7 +51,7 @@ describe('model schema', () => {
51
51
  },
52
52
  enums: {},
53
53
  }
54
- assert.deepStrictEqual(modelSchema(model), model)
54
+ expect(modelSchema(model)).toStrictEqual(model)
55
55
  })
56
56
  }
57
57
 
@@ -81,7 +81,7 @@ describe('model schema', () => {
81
81
  },
82
82
  enums: {},
83
83
  }
84
- assert.throw(() => modelSchema(model), `value at path /entities/Test/fields/column: all variants of union has failed:
84
+ expect(() => modelSchema(model)).toThrow(`value at path /entities/Test/fields/column: all variants of union has failed:
85
85
  value at path /entities/Test/fields/column/columnType: must be valid column type, "${dataType.replaceAll('"', '\\"')}" given`)
86
86
  })
87
87
  }
@@ -1,4 +1,4 @@
1
- import { assert, test } from 'vitest'
1
+ import { expect, test } from 'bun:test'
2
2
  import { Model } from '@contember/schema'
3
3
  import { ModelValidator } from '../../../src'
4
4
  import { c, createSchema } from '@contember/schema-definition'
@@ -64,7 +64,7 @@ test('"meta" collision', () => {
64
64
  },
65
65
  }
66
66
  const validator = new ModelValidator(model)
67
- assert.deepStrictEqual(validator.validate(), [
67
+ expect(validator.validate()).toStrictEqual([
68
68
  {
69
69
  code: 'MODEL_NAME_COLLISION',
70
70
  message: 'entity FooMeta collides with entity Foo, because a GraphQL type with "Meta" suffix is created for every entity',
@@ -83,7 +83,7 @@ namespace ColumnNameCollision {
83
83
  test('column name collision', () => {
84
84
  const schema = createSchema(ColumnNameCollision)
85
85
  const validator = new ModelValidator(schema.model)
86
- assert.deepStrictEqual(validator.validate(), [
86
+ expect(validator.validate()).toStrictEqual([
87
87
  {
88
88
  code: 'MODEL_NAME_COLLISION',
89
89
  message: 'Column name "rel_id" on field "relId" collides with a column name on field "rel".',
@@ -1,100 +1,88 @@
1
- import { beforeAll, describe, expect, test } from 'vitest'
1
+ import { beforeAll, describe, expect, test } from 'bun:test'
2
2
  import { printJsValue } from '../../../src/utils/printJsValue'
3
3
 
4
- beforeAll(() => {
5
- expect.addSnapshotSerializer({
6
- test: val => typeof val === 'string',
7
- print: val => String(val),
8
- })
9
- })
10
-
11
4
  describe('printJsValue', () => {
12
5
  test('string', () => {
13
- expect(printJsValue('foobar')).toMatchInlineSnapshot(`'foobar'`)
6
+ expect(printJsValue('foobar')).toEqual(`'foobar'`)
14
7
  })
15
8
 
16
9
  test('string escape', () => {
17
- expect(printJsValue('foo\'bar')).toMatchInlineSnapshot(`'foo\\'bar'`)
10
+ expect(printJsValue('foo\'bar')).toEqual(`'foo\\'bar'`)
18
11
  })
19
12
 
20
13
  test('number', () => {
21
- expect(printJsValue(11)).toMatchInlineSnapshot(`11`)
14
+ expect(printJsValue(11)).toEqual(`11`)
22
15
  })
23
16
 
24
17
  test('boolean', () => {
25
- expect(printJsValue(true)).toMatchInlineSnapshot(`true`)
18
+ expect(printJsValue(true)).toEqual(`true`)
26
19
  })
27
20
 
28
21
  test('null', () => {
29
- expect(printJsValue(null)).toMatchInlineSnapshot(`null`)
22
+ expect(printJsValue(null)).toEqual(`null`)
30
23
  })
31
24
 
32
25
  test('inline array', () => {
33
- expect(printJsValue([1, 2, 3])).toMatchInlineSnapshot(`[1, 2, 3]`)
26
+ expect(printJsValue([1, 2, 3])).toEqual(`[1, 2, 3]`)
34
27
  })
35
28
  test('block array', () => {
36
- expect(printJsValue([1, 2, 3], () => true)).toMatchInlineSnapshot(`
37
- [
38
- 1,
39
- 2,
40
- 3,
41
- ]
42
- `)
29
+ expect(printJsValue([1, 2, 3], () => true)).toEqual(
30
+ `[
31
+ 1,
32
+ 2,
33
+ 3,
34
+ ]`)
43
35
  })
44
36
 
45
37
  test('inline object', () => {
46
- expect(printJsValue({ a: 1, b: 2 })).toMatchInlineSnapshot('{ a: 1, b: 2 }')
38
+ expect(printJsValue({ a: 1, b: 2 })).toEqual('{ a: 1, b: 2 }')
47
39
  })
48
40
 
49
41
  test('block object', () => {
50
- expect(printJsValue({ a: 1, b: 2 }, () => true)).toMatchInlineSnapshot(`
51
- {
52
- a: 1,
53
- b: 2,
54
- }
55
- `)
42
+ expect(printJsValue({ a: 1, b: 2 }, () => true)).toEqual(
43
+ `{
44
+ a: 1,
45
+ b: 2,
46
+ }`)
56
47
  })
57
48
 
58
49
  test('nested block object', () => {
59
- expect(printJsValue({ a: 1, b: { c: { d: { e: 1 } } } }, () => true)).toMatchInlineSnapshot(`
60
- {
61
- a: 1,
62
- b: {
63
- c: {
64
- d: {
65
- e: 1,
66
- },
67
- },
68
- },
69
- }
70
- `)
50
+ expect(printJsValue({ a: 1, b: { c: { d: { e: 1 } } } }, () => true)).toEqual(
51
+ `{
52
+ a: 1,
53
+ b: {
54
+ c: {
55
+ d: {
56
+ e: 1,
57
+ },
58
+ },
59
+ },
60
+ }`)
71
61
  })
72
62
 
73
63
 
74
64
  test('one level nested block object', () => {
75
- expect(printJsValue({ a: 1, b: { c: { d: { e: 1 } } } }, (_, path) => path.length === 0)).toMatchInlineSnapshot(`
76
- {
77
- a: 1,
78
- b: { c: { d: { e: 1 } } },
79
- }
80
- `)
65
+ expect(printJsValue({ a: 1, b: { c: { d: { e: 1 } } } }, (_, path) => path.length === 0)).toEqual(
66
+ `{
67
+ a: 1,
68
+ b: { c: { d: { e: 1 } } },
69
+ }`)
81
70
  })
82
71
 
83
72
  test('nested block object and arr', () => {
84
- expect(printJsValue({ a: 1, b: [2, { c: 4 }, [5, 6]] }, () => true)).toMatchInlineSnapshot(`
85
- {
86
- a: 1,
87
- b: [
88
- 2,
89
- {
90
- c: 4,
91
- },
92
- [
93
- 5,
94
- 6,
95
- ],
96
- ],
97
- }
98
- `)
73
+ expect(printJsValue({ a: 1, b: [2, { c: 4 }, [5, 6]] }, () => true)).toEqual(
74
+ `{
75
+ a: 1,
76
+ b: [
77
+ 2,
78
+ {
79
+ c: 4,
80
+ },
81
+ [
82
+ 5,
83
+ 6,
84
+ ],
85
+ ],
86
+ }`)
99
87
  })
100
88
  })
@@ -1,30 +1,30 @@
1
1
  import { c } from '@contember/schema-definition'
2
2
 
3
- export const readerRole = c.createRole('reader', { stages: '*' })
4
-
5
3
  export const editorRole = c.createRole('editor', { stages: '*' })
6
4
 
5
+ export const readerRole = c.createRole('reader', { stages: '*' })
6
+
7
7
  export const categoryEditorVariable = c.createEntityVariable('category', 'Category', editorRole)
8
8
 
9
- @c.Allow(readerRole, {
10
- read: true,
11
- })
12
9
  @c.Allow(editorRole, {
13
10
  when: { category: { id: categoryEditorVariable } },
14
11
  read: true,
15
12
  create: ['title', 'category'],
16
13
  update: ['title', 'category'],
17
14
  })
15
+ @c.Allow(readerRole, {
16
+ read: true,
17
+ })
18
18
  export class Article {
19
19
  title = c.stringColumn()
20
20
  deletedAt = c.dateTimeColumn()
21
21
  category = c.manyHasOne(Category)
22
22
  }
23
23
 
24
- @c.Allow(readerRole, {
24
+ @c.Allow(editorRole, {
25
25
  read: true,
26
26
  })
27
- @c.Allow(editorRole, {
27
+ @c.Allow(readerRole, {
28
28
  read: true,
29
29
  })
30
30
  export class Category {
@@ -1,22 +1,22 @@
1
1
  import { c } from '@contember/schema-definition'
2
2
 
3
- export const readerRole = c.createRole('reader', { stages: '*' })
4
-
5
3
  export const editorRole = c.createRole('editor', { stages: '*' })
6
4
 
5
+ export const readerRole = c.createRole('reader', { stages: '*' })
6
+
7
7
  export const categoryEditorVariable = c.createEntityVariable('category', 'Category', editorRole)
8
8
 
9
9
  @c.Unique('title')
10
10
  @c.View(`SELECT * FROM article`)
11
- @c.Allow(readerRole, {
12
- read: true,
13
- })
14
11
  @c.Allow(editorRole, {
15
12
  when: { category: { id: categoryEditorVariable } },
16
13
  read: true,
17
14
  create: ['title', 'category'],
18
15
  update: ['title', 'category'],
19
16
  })
17
+ @c.Allow(readerRole, {
18
+ read: true,
19
+ })
20
20
  export class Article {
21
21
  title = c.stringColumn()
22
22
  deletedAt = c.dateTimeColumn()
@@ -27,10 +27,10 @@ export class Article {
27
27
  SELECT * FROM article
28
28
 
29
29
  `)
30
- @c.Allow(readerRole, {
30
+ @c.Allow(editorRole, {
31
31
  read: true,
32
32
  })
33
- @c.Allow(editorRole, {
33
+ @c.Allow(readerRole, {
34
34
  read: true,
35
35
  })
36
36
  export class Category {
@@ -1,5 +1,5 @@
1
1
  import { createSchema } from '@contember/schema-definition'
2
- import { expect, test } from 'vitest'
2
+ import { expect, test } from 'bun:test'
3
3
  import * as basic from './schemas/basic'
4
4
  import * as complex from './schemas/complex'
5
5
  import * as relations from './schemas/relations'
@@ -1,4 +1,4 @@
1
- import { assert, test, describe } from 'vitest'
1
+ import { expect, test, describe } from 'bun:test'
2
2
  import { conditionSchema } from '../../../src/type-schema'
3
3
  import { Model } from '@contember/schema'
4
4
  import { createSchema, SchemaDefinition as def } from '@contember/schema-definition'
@@ -27,7 +27,7 @@ describe('where schema', () => {
27
27
  const where = {
28
28
  title: { eq: 'foo' },
29
29
  }
30
- assert.deepStrictEqual(whereSchema({ schema, entity: schema.entities.Article })(where), where)
30
+ expect(whereSchema({ schema, entity: schema.entities.Article })(where)).toStrictEqual(where)
31
31
  })
32
32
 
33
33
  test('where with and / or /not', () => {
@@ -40,7 +40,7 @@ describe('where schema', () => {
40
40
  },
41
41
  ],
42
42
  }
43
- assert.deepStrictEqual(whereSchema({ schema, entity: schema.entities.Article })(where), where)
43
+ expect(whereSchema({ schema, entity: schema.entities.Article })(where)).toStrictEqual(where)
44
44
  })
45
45
 
46
46
 
@@ -48,17 +48,17 @@ describe('where schema', () => {
48
48
  const where = {
49
49
  tags: { name: { eq: 'xx' } },
50
50
  }
51
- assert.deepStrictEqual(whereSchema({ schema, entity: schema.entities.Article })(where), where)
51
+ expect(whereSchema({ schema, entity: schema.entities.Article })(where)).toStrictEqual(where)
52
52
  })
53
53
 
54
54
  test('undefined field', () => {
55
55
  const where = {
56
56
  name: { eq: 'foo' },
57
57
  }
58
- assert.throw(() => whereSchema({
58
+ expect(() => whereSchema({
59
59
  schema,
60
60
  entity: schema.entities.Article,
61
- })(where), 'value at root: extra property name found')
61
+ })(where)).toThrow('value at root: extra property name found')
62
62
  })
63
63
 
64
64
 
@@ -69,10 +69,10 @@ describe('where schema', () => {
69
69
 
70
70
  },
71
71
  }
72
- assert.throw(() => whereSchema({
72
+ expect(() => whereSchema({
73
73
  schema,
74
74
  entity: schema.entities.Article,
75
- })(where), 'value at path /tags: extra property caption found')
75
+ })(where)).toThrow('value at path /tags: extra property caption found')
76
76
  })
77
77
 
78
78
 
@@ -80,10 +80,10 @@ describe('where schema', () => {
80
80
  const where = {
81
81
  title: { xx: 'foo' },
82
82
  }
83
- assert.throw(() => whereSchema({
83
+ expect(() => whereSchema({
84
84
  schema,
85
85
  entity: schema.entities.Article,
86
- })(where), 'value at path /title: extra property xx found')
86
+ })(where)).toThrow('value at path /title: extra property xx found')
87
87
  })
88
88
 
89
89
  })