@cubejs-backend/testing 1.6.42 → 1.6.44

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.
@@ -245,6 +245,40 @@ module.exports = {
245
245
  },
246
246
  };
247
247
  }
248
+ if (user === 'conditional_mask_user') {
249
+ if (password && password !== 'conditional_mask_password') {
250
+ throw new Error(`Password doesn't match for ${user}`);
251
+ }
252
+ return {
253
+ password,
254
+ superuser: false,
255
+ securityContext: {
256
+ auth: {
257
+ username: 'conditional_mask_user',
258
+ userAttributes: {},
259
+ roles: ['conditional_mask_role'],
260
+ groups: [],
261
+ },
262
+ },
263
+ };
264
+ }
265
+ if (user === 'conditional_mask_multi_user') {
266
+ if (password && password !== 'conditional_mask_multi_password') {
267
+ throw new Error(`Password doesn't match for ${user}`);
268
+ }
269
+ return {
270
+ password,
271
+ superuser: false,
272
+ securityContext: {
273
+ auth: {
274
+ username: 'conditional_mask_multi_user',
275
+ userAttributes: {},
276
+ roles: ['conditional_mask_role', 'conditional_mask_role_extra'],
277
+ groups: [],
278
+ },
279
+ },
280
+ };
281
+ }
248
282
  throw new Error(`User "${user}" doesn't exist`);
249
283
  }
250
284
  };
@@ -0,0 +1,53 @@
1
+ cubes:
2
+ - name: conditional_masking_test
3
+ sql_table: public.line_items
4
+
5
+ dimensions:
6
+ - name: id
7
+ sql: id
8
+ type: number
9
+ primary_key: true
10
+
11
+ - name: product_id
12
+ sql: product_id
13
+ type: number
14
+
15
+ - name: price
16
+ sql: price
17
+ type: number
18
+ mask: -1
19
+
20
+ measures:
21
+ - name: count
22
+ type: count
23
+
24
+ - name: total_price
25
+ sql: price
26
+ type: sum
27
+
28
+ access_policy:
29
+ - role: "*"
30
+ member_level:
31
+ includes: []
32
+ member_masking:
33
+ includes: "*"
34
+
35
+ - role: "conditional_mask_role"
36
+ member_level:
37
+ includes: "*"
38
+ row_level:
39
+ filters:
40
+ - member: product_id
41
+ operator: lte
42
+ values:
43
+ - "3"
44
+
45
+ - role: "conditional_mask_role_extra"
46
+ member_level:
47
+ includes: "*"
48
+ row_level:
49
+ filters:
50
+ - member: product_id
51
+ operator: equals
52
+ values:
53
+ - "5"
@@ -0,0 +1,115 @@
1
+ cube(`Orders`, {
2
+ sql: `
3
+ select 1 as id, 100 as amount, 'new' as status
4
+ UNION ALL
5
+ select 2 as id, 200 as amount, 'processed' as status
6
+ `,
7
+
8
+ measures: {
9
+ count: {
10
+ type: `count`,
11
+ },
12
+ totalAmount: {
13
+ sql: `amount`,
14
+ type: `sum`,
15
+ },
16
+ },
17
+
18
+ dimensions: {
19
+ id: {
20
+ sql: `id`,
21
+ type: `number`,
22
+ primaryKey: true,
23
+ },
24
+ status: {
25
+ sql: `status`,
26
+ type: `string`,
27
+ },
28
+ },
29
+ });
30
+
31
+ cube(`Customers`, {
32
+ sql: `
33
+ select 1 as id, 'Alice' as name
34
+ UNION ALL
35
+ select 2 as id, 'Bob' as name
36
+ `,
37
+
38
+ measures: {
39
+ count: {
40
+ type: `count`,
41
+ },
42
+ },
43
+
44
+ dimensions: {
45
+ id: {
46
+ sql: `id`,
47
+ type: `number`,
48
+ primaryKey: true,
49
+ },
50
+ name: {
51
+ sql: `name`,
52
+ type: `string`,
53
+ },
54
+ },
55
+ });
56
+
57
+ cube(`Products`, {
58
+ sql: `
59
+ select 1 as id, 'Widget' as title
60
+ UNION ALL
61
+ select 2 as id, 'Gadget' as title
62
+ `,
63
+
64
+ measures: {
65
+ count: {
66
+ type: `count`,
67
+ },
68
+ },
69
+
70
+ dimensions: {
71
+ id: {
72
+ sql: `id`,
73
+ type: `number`,
74
+ primaryKey: true,
75
+ },
76
+ title: {
77
+ sql: `title`,
78
+ type: `string`,
79
+ },
80
+ },
81
+ });
82
+
83
+ view(`RevenueView`, {
84
+ cubes: [{
85
+ joinPath: Orders,
86
+ includes: `*`,
87
+ }],
88
+ });
89
+
90
+ view(`CustomersView`, {
91
+ viewGroup: `sales`,
92
+ cubes: [{
93
+ joinPath: Customers,
94
+ includes: `*`,
95
+ }],
96
+ });
97
+
98
+ view(`CatalogView`, {
99
+ viewGroups: [`inventory`, `sales`],
100
+ cubes: [{
101
+ joinPath: Products,
102
+ includes: `*`,
103
+ }],
104
+ });
105
+
106
+ view_group(`sales`, {
107
+ title: `Sales`,
108
+ description: `Sales related views`,
109
+ views: [`RevenueView`],
110
+ });
111
+
112
+ view_group(`inventory`, {
113
+ title: `Inventory`,
114
+ description: `Inventory related views`,
115
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cubejs-backend/testing",
3
- "version": "1.6.42",
3
+ "version": "1.6.44",
4
4
  "description": "Cube.js e2e tests",
5
5
  "author": "Cube Dev, Inc.",
6
6
  "repository": {
@@ -93,22 +93,23 @@
93
93
  "smoke:mssql": "jest --verbose -i dist/test/smoke-mssql.test.js",
94
94
  "smoke:mssql:snapshot": "jest --verbose --forceExit --updateSnapshot -i dist/test/smoke-mssql.test.js",
95
95
  "smoke:duckdb": "jest --verbose -i dist/test/smoke-duckdb.test.js",
96
- "smoke:duckdb:snapshot": "jest --verbose --updateSnapshot -i dist/test/smoke-duckdb.test.js"
96
+ "smoke:duckdb:snapshot": "jest --verbose --updateSnapshot -i dist/test/smoke-duckdb.test.js",
97
+ "smoke:view-groups": "jest --verbose --forceExit -i dist/test/smoke-view-groups.test.js"
97
98
  },
98
99
  "files": [
99
100
  "dist/src",
100
101
  "birdbox-fixtures"
101
102
  ],
102
103
  "dependencies": {
103
- "@cubejs-backend/cubestore-driver": "1.6.42",
104
+ "@cubejs-backend/cubestore-driver": "1.6.44",
104
105
  "@cubejs-backend/dotenv": "^9.0.2",
105
- "@cubejs-backend/ksql-driver": "1.6.42",
106
- "@cubejs-backend/postgres-driver": "1.6.42",
107
- "@cubejs-backend/query-orchestrator": "1.6.42",
108
- "@cubejs-backend/schema-compiler": "1.6.42",
109
- "@cubejs-backend/shared": "1.6.42",
110
- "@cubejs-backend/testing-shared": "1.6.42",
111
- "@cubejs-client/ws-transport": "1.6.42",
106
+ "@cubejs-backend/ksql-driver": "1.6.44",
107
+ "@cubejs-backend/postgres-driver": "1.6.44",
108
+ "@cubejs-backend/query-orchestrator": "1.6.44",
109
+ "@cubejs-backend/schema-compiler": "1.6.44",
110
+ "@cubejs-backend/shared": "1.6.44",
111
+ "@cubejs-backend/testing-shared": "1.6.44",
112
+ "@cubejs-client/ws-transport": "1.6.44",
112
113
  "dedent": "^0.7.0",
113
114
  "fs-extra": "^8.1.0",
114
115
  "http-proxy": "^1.18.1",
@@ -119,8 +120,8 @@
119
120
  },
120
121
  "devDependencies": {
121
122
  "@4tw/cypress-drag-drop": "^1.6.0",
122
- "@cubejs-backend/linter": "1.6.42",
123
- "@cubejs-client/core": "1.6.42",
123
+ "@cubejs-backend/linter": "1.6.44",
124
+ "@cubejs-client/core": "1.6.44",
124
125
  "@jest/globals": "^29",
125
126
  "@types/dedent": "^0.7.0",
126
127
  "@types/http-proxy": "^1.17.5",
@@ -146,5 +147,5 @@
146
147
  "eslintConfig": {
147
148
  "extends": "../cubejs-linter"
148
149
  },
149
- "gitHead": "bc42af723927870e925f863c9db7f52ac4dcab40"
150
+ "gitHead": "6b5ff94bd2799ebe4228b3d5252b2aa2e0ae2020"
150
151
  }