Updated all the contrib modules to their latest versions.
[yaffs-website] / web / modules / contrib / permissions_by_term / js / test / permission-output.tests.js
1 import PermissionOutputCollector from '../src/client/permission-output-collector.prototype';
2 import PermissionOutput from '../src/model/permission-output.prototype';
3 import createPermission from "../src/async-function/create-permission";
4 import TermCollector from "../src/client/term-collector.prototype";
5 import sinon from "sinon";
6
7 QUnit.test("Collect output roles and usernames", async ( assert ) => {
8
9   const fetchFromBackend = async() => {
10     return {
11       taxonomyRelationFieldNames: ['field-one', 'field-two', 'field-thrid'],
12       permissions: {
13         userDisplayNames: {
14           '2': ['jeff'],
15           '4': ['brandon', 'brian']
16         },
17         roleLabels: {
18           '1': ['admin','editor'],
19           '2': ['editor']
20         }
21       }
22     };
23   },
24     domClient = {
25       computeTids: sinon.stub().returns(['2'])
26     },
27     termCollector = new TermCollector;
28
29   termCollector.addSelectedTids(domClient.computeTids(['first-field', 'second-field']));
30
31   /**
32    * @var Backend[] permissions
33    * @var PermissionOutputCollector permissionOutputCollector
34    */
35   let permissions = await createPermission(fetchFromBackend),
36       permissionOutput = new PermissionOutput,
37       permissionOutputCollector = new PermissionOutputCollector(permissionOutput);
38
39   permissionOutputCollector.collect(permissions, termCollector.getSelectedTids());
40
41   assert.deepEqual(permissionOutputCollector.getPermissionOutput().getRoles(), ['editor']);
42   assert.deepEqual(permissionOutputCollector.getPermissionOutput().getUsernames(), ['jeff']);
43
44 });
45
46 QUnit.test("Collect permissions without duplicates", async (assert) => {
47
48   const fetchFromBackend = async() => {
49         return {
50           taxonomyRelationFieldNames: ['field-one', 'field-two', 'field-thrid'],
51           permissions: {
52             userDisplayNames: {
53               '2': ['jeff','jeff'],
54               '4': ['brandon', 'brian']
55             },
56             roleLabels: {
57               '1': ['admin','admin','editor'],
58               '2': ['editor','editor']
59             }
60           }
61         };
62       },
63       domClient = {
64         computeTids: sinon.stub().returns(['2'])
65       },
66       termCollector = new TermCollector;
67
68   termCollector.addSelectedTids(domClient.computeTids(['first-field', 'second-field']));
69
70   /**
71    * @var Backend[] permissions
72    */
73   let permissions = await createPermission(fetchFromBackend),
74       permissionOutput = new PermissionOutput,
75       permissionOutputCollector = new PermissionOutputCollector(permissionOutput);
76
77   permissionOutputCollector.collect(permissions, termCollector.getSelectedTids());
78
79   assert.deepEqual(permissionOutputCollector.getPermissionOutput().getRoles(), ['editor']);
80   assert.deepEqual(permissionOutputCollector.getPermissionOutput().getUsernames(), ['jeff']);
81
82 });