unit tests
This commit is contained in:
parent
b9295245d3
commit
00273bc760
173
test/unit/pg-entities-access-validator.test.js
Normal file
173
test/unit/pg-entities-access-validator.test.js
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
const assert = require('assert');
|
||||||
|
const pgEntitiesAccessValidator = require('../../app/services/pg-entities-access-validator');
|
||||||
|
|
||||||
|
const fakeAffectedTables = [{
|
||||||
|
schema_name: 'schema',
|
||||||
|
table_name: 'untitled_table'
|
||||||
|
}];
|
||||||
|
|
||||||
|
const fakeAffectedTablesCarto = [{
|
||||||
|
schema_name: 'carto',
|
||||||
|
table_name: 'untitled_table'
|
||||||
|
}];
|
||||||
|
|
||||||
|
const fakeAffectedTablesCartodbOK = [{
|
||||||
|
schema_name: 'cartodb',
|
||||||
|
table_name: 'untitled_table'
|
||||||
|
}];
|
||||||
|
|
||||||
|
const fakeAffectedTablesCartodbKO = [
|
||||||
|
{
|
||||||
|
schema_name: 'cartodb',
|
||||||
|
table_name: 'untitled_table'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
schema_name: 'cartodb',
|
||||||
|
table_name: 'cdb_tablemetadata'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const fakeAffectedTablesPgcatalog = [{
|
||||||
|
schema_name: 'pg_catalog',
|
||||||
|
table_name: 'pg_catalog'
|
||||||
|
}];
|
||||||
|
|
||||||
|
const fakeAffectedTablesInfo = [{
|
||||||
|
schema_name: 'information_schema',
|
||||||
|
table_name: 'untitled_table'
|
||||||
|
}];
|
||||||
|
|
||||||
|
const fakeAffectedTablesPublicOK = [{
|
||||||
|
schema_name: 'public',
|
||||||
|
table_name: 'untitled_table'
|
||||||
|
}];
|
||||||
|
|
||||||
|
const fakeAffectedTablesPublicKO = [
|
||||||
|
{
|
||||||
|
schema_name: 'public',
|
||||||
|
table_name: 'spatial_ref_sys'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
schema_name: 'public',
|
||||||
|
table_name: 'untitled_table'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const fakeAffectedTablesTopologyOK = [{
|
||||||
|
schema_name: 'topology',
|
||||||
|
table_name: 'untitled_table'
|
||||||
|
}];
|
||||||
|
|
||||||
|
const fakeAffectedTablesTopologyKO = [
|
||||||
|
{
|
||||||
|
schema_name: 'topology',
|
||||||
|
table_name: 'layer'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
schema_name: 'topology',
|
||||||
|
table_name: 'untitled_table'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
describe.only('pg entities access validator with validatePGEntitiesAccess enabled', function () {
|
||||||
|
before(function() {
|
||||||
|
global.validatePGEntitiesAccess = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
after(function() {
|
||||||
|
global.validatePGEntitiesAccess = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
it('validate function: bad parameters', function () {
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.validate(), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.validate(null), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.validate(null, null), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.validate([]), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.validate([], 3), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.validate({ tables: [] }, false), true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('validate function: should be validated', function () {
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.validate({ tables: fakeAffectedTables }), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesCartodbOK }), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesPublicOK }), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesTopologyOK }), true);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('validate function: should not be validated', function () {
|
||||||
|
let authenticated = true;
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesCarto }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesCartodbKO }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesPgcatalog }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesInfo }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesPublicKO }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesTopologyKO }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
authenticated = false;
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesCarto }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesCartodbKO }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesPgcatalog }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesInfo }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesPublicKO }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
assert.strictEqual(
|
||||||
|
pgEntitiesAccessValidator.validate({ tables: fakeAffectedTablesTopologyKO }, authenticated),
|
||||||
|
false
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('hardValidation function', function () {
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.hardValidation(fakeAffectedTables), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.hardValidation(fakeAffectedTablesCartodbOK), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.hardValidation(fakeAffectedTablesPublicOK), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.hardValidation(fakeAffectedTablesTopologyOK), true);
|
||||||
|
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.hardValidation(fakeAffectedTablesCarto), false);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.hardValidation(fakeAffectedTablesCartodbKO), false);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.hardValidation(fakeAffectedTablesPgcatalog), false);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.hardValidation(fakeAffectedTablesInfo), false);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.hardValidation(fakeAffectedTablesPublicKO), false);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.hardValidation(fakeAffectedTablesTopologyKO), false);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('softValidation function', function () {
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.softValidation(fakeAffectedTablesCartodbKO), true);
|
||||||
|
assert.strictEqual(pgEntitiesAccessValidator.softValidation(fakeAffectedTablesPgcatalog), false);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user