blob: 94d83418ffef7d8e93d326056cdd24941fa7fc0b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
import { UserBuilder } from '../../support/builder/UserBuilder';
import { UserRole } from '../../../src/app/_enums/user-role.enum';
import { UserUtils } from '../../support/utils/UserUtils';
import { ConnectUtils } from '../../support/utils/connect/ConnectUtils';
import { PipelineUtils } from '../../support/utils/pipeline/PipelineUtils';
import { PipelineElementBuilder } from '../../support/builder/PipelineElementBuilder';
import { PipelineBuilder } from '../../support/builder/PipelineBuilder';
describe('Test User Roles for Pipelines', () => {
beforeEach('Setup Test', () => {
cy.initStreamPipesTest();
ConnectUtils.addMachineDataSimulator('simulator');
const pipelineInput = PipelineBuilder.create('Pipeline Test')
.addSource('simulator')
.addProcessingElement(
PipelineElementBuilder.create('field_renamer')
.addInput('drop-down', 'convert-property', 'timestamp')
.addInput('input', 'field-name', 't')
.build(),
)
.addSink(
PipelineElementBuilder.create('data_lake')
.addInput('input', 'db_measurement', 'demo')
.build(),
)
.build();
PipelineUtils.addPipeline(pipelineInput);
});
it('Perform Test', () => {
// Add new user
UserUtils.goToUserConfiguration();
cy.dataCy('user-accounts-table-row', { timeout: 10000 }).should(
'have.length',
1,
);
const email = 'user@streampipes.apache.org';
const name = 'test_user';
const user = UserBuilder.create(email)
.setName(name)
.setPassword(name)
.addRole(UserRole.ROLE_PIPELINE_USER)
.build();
UserUtils.addUser(user);
// Check if user is added successfully
cy.dataCy('user-accounts-table-row', { timeout: 10000 }).should(
'have.length',
2,
);
// Add new authorized user to pipeline
PipelineUtils.goToPipelines();
cy.dataCy('share').click();
cy.get('label').contains('Authorized Users').click();
cy.get('mat-option').contains(email).click();
cy.dataCy('sp-element-edit-user-save').click();
// Login as user and check if pipeline is visible to user
UserUtils.switchUser(user);
cy.dataCy('navigation-icon', { timeout: 10000 }).should(
'have.length',
3,
);
PipelineUtils.goToPipelines();
cy.dataCy('all-pipelines-table', { timeout: 10000 }).should(
'have.length',
1,
);
cy.dataCy('all-pipelines-table', { timeout: 10000 }).should(
'contain',
'Pipeline Test',
);
// Delete user
UserUtils.switchUser(UserUtils.adminUser);
UserUtils.deleteUser(user);
});
});