Skip to content

Commit a4bd726

Browse files
author
Paul Korzhyk
committed
Try cleaner ACL test on teamcity
1 parent 33aa853 commit a4bd726

File tree

1 file changed

+38
-54
lines changed

1 file changed

+38
-54
lines changed

tests/integration/acl.spec.ts

Lines changed: 38 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ const WAIT_FOR_SIX_SECONDS = 6 * 1000; // 6 seconds in milliseconds
1111
jest.setTimeout(JEST_TIMEOUT);
1212

1313
let client: dgraph.DgraphClient;
14-
let aclClient: dgraph.DgraphClient;
1514

1615
const GROOT_PWD = "password";
1716
const USERID = "alice";
@@ -39,18 +38,14 @@ async function cmd(command: string) {
3938

4039
async function insertSampleData() {
4140
const txn = client.newTxn();
42-
try {
43-
const mu = new dgraph.Mutation();
44-
mu.setSetNquads(`
45-
_:prashant <${PRED}> "Prashant" .
46-
`);
47-
mu.setCommitNow(true);
48-
const res = await txn.mutate(mu);
49-
const uid = res.getUidsMap().get("prashant");
50-
expect(uid).toBeDefined();
51-
} finally {
52-
await txn.discard();
53-
}
41+
const mu = new dgraph.Mutation();
42+
mu.setSetNquads(`
43+
_:prashant <${PRED}> "Prashant" .
44+
`);
45+
mu.setCommitNow(true);
46+
const res = await txn.mutate(mu);
47+
const uid = res.getUidsMap().get("prashant");
48+
expect(uid).toBeDefined();
5449
}
5550

5651
async function loginUser(): Promise<dgraph.DgraphClient> {
@@ -72,7 +67,7 @@ async function aclSetup() {
7267
await addUser();
7368
await addGroup();
7469
await addUserToGroup();
75-
aclClient = await loginUser();
70+
return loginUser();
7671
}
7772

7873
async function addUser() {
@@ -96,29 +91,24 @@ async function changePermission(permission: number) {
9691
await wait(WAIT_FOR_SIX_SECONDS);
9792
}
9893

99-
async function tryReading(): Promise<Boolean> {
100-
let success: Boolean;
94+
async function tryReading(aclClient: dgraph.DgraphClient): Promise<Boolean> {
10195
const txn = aclClient.newTxn();
102-
const query = `{
96+
const res: dgraph.Response = await txn.query(`{
10397
me(func: has(${PRED})) {
10498
${PRED}
10599
}
106-
}`;
107-
108-
const res: dgraph.Response = await txn.query(query);
100+
}`);
109101
const data = res.getJson();
110102
if (data.me === undefined) {
111103
expect(data).toEqual({});
112-
success = false;
104+
return false;
113105
} else {
114106
expect(data.me).not.toHaveLength(0);
115-
success = true;
107+
return true;
116108
}
117-
return success;
118109
}
119110

120-
async function tryWriting(): Promise<Boolean> {
121-
let success: Boolean;
111+
async function tryWriting(aclClient: dgraph.DgraphClient): Promise<Boolean> {
122112
const txn = aclClient.newTxn();
123113
try {
124114
const mu = new dgraph.Mutation();
@@ -129,63 +119,57 @@ async function tryWriting(): Promise<Boolean> {
129119
const res = await txn.mutate(mu);
130120
const uid = res.getUidsMap().get("ashish");
131121
expect(uid).toBeDefined();
132-
success = true;
122+
return true;
133123
} catch (e) {
134124
expect(e).toEqual(MUTATE_PERMISSION_DENIED);
135-
success = false;
125+
return false;
136126
}
137-
return success;
138127
}
139128

140-
async function tryAltering(): Promise<Boolean> {
141-
let success: Boolean;
129+
async function tryAltering(aclClient: dgraph.DgraphClient): Promise<Boolean> {
142130
try {
143131
const operation = new dgraph.Operation();
144132
operation.setSchema(`
145133
${PRED}: string @index(exact, term) .
146134
`);
147135
await aclClient.alter(operation);
148-
success = true;
136+
return true;
149137
} catch (e) {
150138
expect(e).toEqual(ALTER_PERMISSION_DENIED);
151-
success = false;
139+
return false;
152140
}
153-
return success;
154141
}
155142

156143
describe("ACL tests", () => {
157144
it("has no access", async () => {
158-
await aclSetup();
159-
await expect(tryReading()).resolves.toBe(false);
160-
await expect(tryWriting()).resolves.toBe(false);
161-
await expect(tryAltering()).resolves.toBe(false);
145+
const aclClient = await aclSetup();
146+
await changePermission(0);
147+
await expect(tryReading(aclClient)).resolves.toBe(false);
148+
await expect(tryWriting(aclClient)).resolves.toBe(false);
149+
await expect(tryAltering(aclClient)).resolves.toBe(false);
162150
});
163151

164152
it("only has read access", async () => {
165-
await aclSetup();
153+
const aclClient = await aclSetup();
166154
await changePermission(4);
167-
await expect(tryReading()).resolves.toBe(true);
168-
await expect(tryWriting()).resolves.toBe(false);
169-
await expect(tryAltering()).resolves.toBe(false);
155+
await expect(tryReading(aclClient)).resolves.toBe(true);
156+
await expect(tryWriting(aclClient)).resolves.toBe(false);
157+
await expect(tryAltering(aclClient)).resolves.toBe(false);
170158
});
171159

172160
it("only has write access", async () => {
173-
await aclSetup();
174-
await changePermission(2);
175-
await expect(tryReading()).resolves.toBe(false);
176-
await expect(tryWriting()).resolves.toBe(true);
177-
await expect(tryAltering()).resolves.toBe(false);
161+
const aclClient = await aclSetup();
162+
await changePermission(2);
163+
await expect(tryReading(aclClient)).resolves.toBe(false);
164+
await expect(tryWriting(aclClient)).resolves.toBe(true);
165+
await expect(tryAltering(aclClient)).resolves.toBe(false);
178166
});
179167

180168
it("only has modify access", async () => {
181-
await aclSetup();
169+
const aclClient = await aclSetup();
182170
await changePermission(1);
183-
await expect(tryReading()).resolves.toBe(false);
184-
await expect(tryWriting()).resolves.toBe(false);
185-
await expect(tryAltering()).resolves.toBe(true);
186-
});
187-
188-
afterEach(async () => {
189-
await changePermission(0);
171+
await expect(tryReading(aclClient)).resolves.toBe(false);
172+
await expect(tryWriting(aclClient)).resolves.toBe(false);
173+
await expect(tryAltering(aclClient)).resolves.toBe(true);
190174
});
191175
});

0 commit comments

Comments
 (0)