Initial commit
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
var ConfigModel = require('builder/data/config-model');
|
||||
var AnalysisDefinitionNodesCollection = require('builder/data/analysis-definition-nodes-collection');
|
||||
var UserModel = require('builder/data/user-model');
|
||||
|
||||
describe('builder/data/analysis-definition-node-source-model', function () {
|
||||
beforeEach(function () {
|
||||
var configModel = new ConfigModel({
|
||||
base_url: '/u/pepe'
|
||||
});
|
||||
|
||||
this.userModel = new UserModel({
|
||||
username: 'pericoo'
|
||||
}, {
|
||||
configModel: configModel
|
||||
});
|
||||
|
||||
this.collection = new AnalysisDefinitionNodesCollection(null, {
|
||||
configModel: configModel,
|
||||
userModel: this.userModel
|
||||
});
|
||||
|
||||
var analysisParams = {
|
||||
id: 'a0',
|
||||
type: 'source',
|
||||
params: {
|
||||
query: 'SELECT * FROM bar'
|
||||
},
|
||||
options: {
|
||||
table_name: 'bar',
|
||||
test: 'hello'
|
||||
}
|
||||
};
|
||||
|
||||
this.model = this.collection.add(analysisParams);
|
||||
});
|
||||
|
||||
describe('.getDefaultQuery', function () {
|
||||
beforeEach(function () {
|
||||
spyOn(this.userModel, 'isInsideOrg');
|
||||
spyOn(this.model.tableModel, 'getOwnerName');
|
||||
});
|
||||
|
||||
it('should provide a default query without qualifing if user does not belong to an organization', function () {
|
||||
this.userModel.isInsideOrg.and.returnValue(false);
|
||||
this.model.tableModel.getOwnerName.and.returnValue('pericoo');
|
||||
expect(this.model.getDefaultQuery()).toBe('SELECT * FROM bar');
|
||||
});
|
||||
|
||||
it('should provide a default query with qualifing if user does belong to an organization', function () {
|
||||
this.userModel.isInsideOrg.and.returnValue(true);
|
||||
this.model.tableModel.getOwnerName.and.returnValue('pericoo');
|
||||
expect(this.model.getDefaultQuery()).toBe('SELECT * FROM pericoo.bar');
|
||||
});
|
||||
|
||||
it('should provide a default query with qualifing if user does belong to an organization and is not the owner', function () {
|
||||
this.userModel.isInsideOrg.and.returnValue(true);
|
||||
this.model.tableModel.getOwnerName.and.returnValue('hello');
|
||||
expect(this.model.getDefaultQuery()).toBe('SELECT * FROM hello.bar');
|
||||
});
|
||||
});
|
||||
|
||||
describe('.isCustomQueryApplied', function () {
|
||||
/*
|
||||
It just compares two queries, not worth it to be tested.
|
||||
*/
|
||||
});
|
||||
|
||||
describe('.isReadOnly', function () {
|
||||
beforeEach(function () {
|
||||
spyOn(this.model.tableModel, 'isReadOnly');
|
||||
spyOn(this.model, 'isCustomQueryApplied');
|
||||
});
|
||||
|
||||
it('should be true if table-model is read-only', function () {
|
||||
this.model.tableModel.isReadOnly.and.returnValue(true);
|
||||
expect(this.model.isReadOnly()).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should be true if table-model is read-only', function () {
|
||||
this.model.tableModel.isReadOnly.and.returnValue(false);
|
||||
this.model.isCustomQueryApplied.and.returnValue(true);
|
||||
expect(this.model.isReadOnly()).toBeTruthy();
|
||||
});
|
||||
|
||||
it('should be false if table-model is not read-only and custom query is not applied', function () {
|
||||
this.model.tableModel.isReadOnly.and.returnValue(false);
|
||||
this.model.isCustomQueryApplied.and.returnValue(false);
|
||||
expect(this.model.isReadOnly()).toBeFalsy();
|
||||
});
|
||||
});
|
||||
|
||||
describe('setTableName', function () {
|
||||
it('should set the new table name in several objects', function () {
|
||||
expect(this.model.get('table_name')).toBe('bar');
|
||||
expect(this.model.tableModel.get('name')).toBe('bar');
|
||||
expect(this.model.queryRowsCollection._tableName).toBe('bar');
|
||||
expect(this.model.querySchemaModel.get('query')).toBe('SELECT * FROM bar');
|
||||
|
||||
this.model.setTableName('har');
|
||||
|
||||
expect(this.model.get('table_name')).toBe('har');
|
||||
expect(this.model.tableModel.get('name')).toBe('har');
|
||||
expect(this.model.queryRowsCollection._tableName).toBe('har');
|
||||
expect(this.model.querySchemaModel.get('query')).toBe('SELECT * FROM har');
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user