GNM-132 FE Unittest erstellen
diff --git a/karma.conf.js b/karma.conf.js
index 589e10a..ce83f8c 100644
--- a/karma.conf.js
+++ b/karma.conf.js
@@ -11,15 +11,15 @@
require('karma-jasmine-html-reporter'),
require('karma-coverage-istanbul-reporter'),
require('karma-junit-reporter'),
- require('@angular/cli/plugins/karma')
+ require('@angular/cli/plugins/karma')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
files: [{
- pattern: './src/test.ts',
- watched: false
- }
+ pattern: './src/test.ts',
+ watched: false
+ }
//{ pattern: './node_modules/bootstrap/dist/js/bootstrap.min.js', included: false, watched: false },
//{ pattern: './node_modules/jquery/dist/jquery.min.js', included: false, watched: false }
],
@@ -43,15 +43,15 @@
outputDir: 'unittests',
outputFile: 'test-results.xml'
},
- port: 9877,
+ port: 9876,
colors: true,
- logLevel: config.LOG_DEBUG,
+ logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['ChromeDebugging'],
customLaunchers: {
ChromeDebugging: {
base: 'Chrome',
- flags: ['--remote-debugging-port=9334']
+ flags: ['--remote-debugging-port=9333']
}
},
singleRun: false
diff --git a/src/app/pages/module-grid/module-grid.component.spec.ts b/src/app/pages/module-grid/module-grid.component.spec.ts
index ebde444..90e52ac 100644
--- a/src/app/pages/module-grid/module-grid.component.spec.ts
+++ b/src/app/pages/module-grid/module-grid.component.spec.ts
@@ -24,8 +24,7 @@
import { UserModule } from '../../model/user-module';
import { UserModuleService } from '../../services/user-module.service';
import { ModuleGridComponent } from './module-grid.component';
-import { USER_MODULES } from '../../testing/user-module';
-import { ONE_USER_MODULE } from '../../testing/user-module';
+import { USER_MODULES, ONE_USER_MODULE, PGM_MODULE } from '../../testing/user-module';
import { AuthenticationService } from '../../services/authentication.service';
import { AbstractMockObservableService } from '../../common/abstract-mock-observable.service';
@@ -36,7 +35,7 @@
}
describe('ModuleGridComponent', () => {
- const sessionContext: SessionContext = new SessionContext();
+ const sessionContext: SessionContext = new SessionContext();
let component: ModuleGridComponent;
let fixture: ComponentFixture<ModuleGridComponent>;
let router: Router;
@@ -44,12 +43,12 @@
class MockAuthService extends AbstractMockObservableService {
- logout() {
- return this;
+ logout() {
+ return this;
}
- checkAuth() {
- return this;
+ checkAuth() {
+ return this;
}
}
@@ -126,4 +125,45 @@
expect(window.location.href.endsWith('/elogbookFE')).toBeTruthy();
});
}));
+
+ it('should check if the user has the rights for the roles', async(() => {
+
+ component.roles = ['planned-policies-normaluser', 'planned-policies-access',
+ 'offline_access', 'uma_authorization', 'elogbook-access', 'elogbook-normaluser'];
+
+ /* tslint:disable:max-line-length */
+ sessionContext.setAccessToken('eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJodVl0eVByUEVLQ1phY3FfMW5sOGZscENETnFHdmZEZHctYUxGQXNoWHZVIn0.eyJqdGkiOiJhNTkzMWYzMS1lYjgzLTQ1Y2YtYWIwMy1kY2E2ODc5Y2M2YjgiLCJleHAiOjE1MjM5NTk5MTcsIm5iZiI6MCwiaWF0IjoxNTIzOTU5NjE3LCJpc3MiOiJodHRwOi8vZW50amF2YTAwMjo4MDgwL2F1dGgvcmVhbG1zL2Vsb2dib29rIiwiYXVkIjoiZWxvZ2Jvb2stYmFja2VuZCIsInN1YiI6ImMyZTlkN2FlLTJiZmEtNDU3OC1iMDllLWY1ZGM1ZjA5YTg3OSIsInR5cCI6IkJlYXJlciIsImF6cCI6ImVsb2dib29rLWJhY2tlbmQiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiIzZTM1ODg0OC0wNDY0LTQ2YjMtYmNlNC0wNDgyZDZkNWViY2QiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImVsb2dib29rLWFjY2VzcyIsImVsb2dib29rLW5vcm1hbHVzZXIiLCJwbGFubmVkLXBvbGljaWVzLWFjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwicGxhbm5lZC1wb2xpY2llcy1ub3JtYWx1c2VyIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwicm9sZXMiOiJbcGxhbm5lZC1wb2xpY2llcy1ub3JtYWx1c2VyLCBwbGFubmVkLXBvbGljaWVzLWFjY2Vzcywgb2ZmbGluZV9hY2Nlc3MsIHVtYV9hdXRob3JpemF0aW9uLCBlbG9nYm9vay1hY2Nlc3MsIGVsb2dib29rLW5vcm1hbHVzZXJdIiwibmFtZSI6Ik90dG8gTm9ybWFsdmVyYnJhdWNoZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJvdHRvIiwiZ2l2ZW5fbmFtZSI6Ik90dG8iLCJmYW1pbHlfbmFtZSI6Ik5vcm1hbHZlcmJyYXVjaGVyIn0.rKZdROPPD6xkSoNU9oY2vWYvTQnPKbHFh25o3PdOFEkEk1jmagEZCayKg2NH7TwVqJRZQfkyBy0PCfj9ReaQFfrKweTQZHUEi5bJuvzL4dR-TdDa_yGafCgnDvdM6vgshAdlvb5_8rPz5IEYfeszsC3RoLFBR13hRzu88MIFT2LJBaLLS4A386SznoN8T0wcC6q7uzfJRL-QAQoUkqjvSK1HM4yN4wzjj9IC-1MIye1uqcMfvd3qDHlzWlLM1vO9adcd5GZ8aaYg87a7m-vznJd1VtvaQ-l8TqYXa59z0Wgoyzr1UC3r_-1UlP9W6K0abiYTRDxvfIsvfdim4HozaA');
+ component.userModules = USER_MODULES;
+
+ component.setModulesForRole(USER_MODULES);
+
+ expect(component.moduleRights).toBeTruthy();
+
+ }));
+
+ it('should check if the module list is empty', async(() => {
+
+ component.roles = ['planned-policies-normaluser', 'planned-policies-access',
+ 'offline_access', 'uma_authorization', 'elogbook-access', 'elogbook-normaluser'];
+
+ /* tslint:disable:max-line-length */
+ sessionContext.setAccessToken('eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJodVl0eVByUEVLQ1phY3FfMW5sOGZscENETnFHdmZEZHctYUxGQXNoWHZVIn0.eyJqdGkiOiJhNTkzMWYzMS1lYjgzLTQ1Y2YtYWIwMy1kY2E2ODc5Y2M2YjgiLCJleHAiOjE1MjM5NTk5MTcsIm5iZiI6MCwiaWF0IjoxNTIzOTU5NjE3LCJpc3MiOiJodHRwOi8vZW50amF2YTAwMjo4MDgwL2F1dGgvcmVhbG1zL2Vsb2dib29rIiwiYXVkIjoiZWxvZ2Jvb2stYmFja2VuZCIsInN1YiI6ImMyZTlkN2FlLTJiZmEtNDU3OC1iMDllLWY1ZGM1ZjA5YTg3OSIsInR5cCI6IkJlYXJlciIsImF6cCI6ImVsb2dib29rLWJhY2tlbmQiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiIzZTM1ODg0OC0wNDY0LTQ2YjMtYmNlNC0wNDgyZDZkNWViY2QiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImVsb2dib29rLWFjY2VzcyIsImVsb2dib29rLW5vcm1hbHVzZXIiLCJwbGFubmVkLXBvbGljaWVzLWFjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwicGxhbm5lZC1wb2xpY2llcy1ub3JtYWx1c2VyIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwicm9sZXMiOiJbcGxhbm5lZC1wb2xpY2llcy1ub3JtYWx1c2VyLCBwbGFubmVkLXBvbGljaWVzLWFjY2Vzcywgb2ZmbGluZV9hY2Nlc3MsIHVtYV9hdXRob3JpemF0aW9uLCBlbG9nYm9vay1hY2Nlc3MsIGVsb2dib29rLW5vcm1hbHVzZXJdIiwibmFtZSI6Ik90dG8gTm9ybWFsdmVyYnJhdWNoZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJvdHRvIiwiZ2l2ZW5fbmFtZSI6Ik90dG8iLCJmYW1pbHlfbmFtZSI6Ik5vcm1hbHZlcmJyYXVjaGVyIn0.rKZdROPPD6xkSoNU9oY2vWYvTQnPKbHFh25o3PdOFEkEk1jmagEZCayKg2NH7TwVqJRZQfkyBy0PCfj9ReaQFfrKweTQZHUEi5bJuvzL4dR-TdDa_yGafCgnDvdM6vgshAdlvb5_8rPz5IEYfeszsC3RoLFBR13hRzu88MIFT2LJBaLLS4A386SznoN8T0wcC6q7uzfJRL-QAQoUkqjvSK1HM4yN4wzjj9IC-1MIye1uqcMfvd3qDHlzWlLM1vO9adcd5GZ8aaYg87a7m-vznJd1VtvaQ-l8TqYXa59z0Wgoyzr1UC3r_-1UlP9W6K0abiYTRDxvfIsvfdim4HozaA');
+ component.userModules = [];
+
+ component.setModulesForRole(USER_MODULES);
+ expect(component.moduleRights).toBeFalsy();
+
+ }));
+
+ fit('should create elogbookLink token string', async(() => {
+
+ /* tslint:disable:max-line-length */
+ sessionContext.setAccessToken('eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJodVl0eVByUEVLQ1phY3FfMW5sOGZscENETnFHdmZEZHctYUxGQXNoWHZVIn0.eyJqdGkiOiJhNTkzMWYzMS1lYjgzLTQ1Y2YtYWIwMy1kY2E2ODc5Y2M2YjgiLCJleHAiOjE1MjM5NTk5MTcsIm5iZiI6MCwiaWF0IjoxNTIzOTU5NjE3LCJpc3MiOiJodHRwOi8vZW50amF2YTAwMjo4MDgwL2F1dGgvcmVhbG1zL2Vsb2dib29rIiwiYXVkIjoiZWxvZ2Jvb2stYmFja2VuZCIsInN1YiI6ImMyZTlkN2FlLTJiZmEtNDU3OC1iMDllLWY1ZGM1ZjA5YTg3OSIsInR5cCI6IkJlYXJlciIsImF6cCI6ImVsb2dib29rLWJhY2tlbmQiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiIzZTM1ODg0OC0wNDY0LTQ2YjMtYmNlNC0wNDgyZDZkNWViY2QiLCJhY3IiOiIxIiwiYWxsb3dlZC1vcmlnaW5zIjpbIioiXSwicmVhbG1fYWNjZXNzIjp7InJvbGVzIjpbImVsb2dib29rLWFjY2VzcyIsImVsb2dib29rLW5vcm1hbHVzZXIiLCJwbGFubmVkLXBvbGljaWVzLWFjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIiwicGxhbm5lZC1wb2xpY2llcy1ub3JtYWx1c2VyIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwicm9sZXMiOiJbcGxhbm5lZC1wb2xpY2llcy1ub3JtYWx1c2VyLCBwbGFubmVkLXBvbGljaWVzLWFjY2Vzcywgb2ZmbGluZV9hY2Nlc3MsIHVtYV9hdXRob3JpemF0aW9uLCBlbG9nYm9vay1hY2Nlc3MsIGVsb2dib29rLW5vcm1hbHVzZXJdIiwibmFtZSI6Ik90dG8gTm9ybWFsdmVyYnJhdWNoZXIiLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJvdHRvIiwiZ2l2ZW5fbmFtZSI6Ik90dG8iLCJmYW1pbHlfbmFtZSI6Ik5vcm1hbHZlcmJyYXVjaGVyIn0.rKZdROPPD6xkSoNU9oY2vWYvTQnPKbHFh25o3PdOFEkEk1jmagEZCayKg2NH7TwVqJRZQfkyBy0PCfj9ReaQFfrKweTQZHUEi5bJuvzL4dR-TdDa_yGafCgnDvdM6vgshAdlvb5_8rPz5IEYfeszsC3RoLFBR13hRzu88MIFT2LJBaLLS4A386SznoN8T0wcC6q7uzfJRL-QAQoUkqjvSK1HM4yN4wzjj9IC-1MIye1uqcMfvd3qDHlzWlLM1vO9adcd5GZ8aaYg87a7m-vznJd1VtvaQ-l8TqYXa59z0Wgoyzr1UC3r_-1UlP9W6K0abiYTRDxvfIsvfdim4HozaA');
+
+ component.goToElogbookIfValid(PGM_MODULE);
+ expect(component.goToElogbookIfValid(PGM_MODULE)).toHaveBeenCalled;
+
+ }));
+
+
});
diff --git a/src/app/pages/module-grid/module-grid.component.ts b/src/app/pages/module-grid/module-grid.component.ts
index 80edcd1..9fc325b 100644
--- a/src/app/pages/module-grid/module-grid.component.ts
+++ b/src/app/pages/module-grid/module-grid.component.ts
@@ -38,9 +38,9 @@
this.getUserModules();
}
- private goToElogbookIfValid(userModule: UserModule): void {
+ goToElogbookIfValid(userModule: UserModule): void {
const elogbookLink = userModule.link + '?accessToken=' + this.sessionContext.getAccessToken();
-
+
this.authService.checkAuth().subscribe(res => {
window.open(elogbookLink, '_blank');
},
diff --git a/src/app/testing/user-module.ts b/src/app/testing/user-module.ts
index cf98739..b6b7f01 100644
--- a/src/app/testing/user-module.ts
+++ b/src/app/testing/user-module.ts
@@ -21,10 +21,10 @@
cols: 1,
rows: 1,
color: '#ffffff',
- link: '/elogbookFE',
+ link: '/elogbookFE',
pictureLink: 'https://www.openkonsequenz.de/medien/cache/main_image/m_logbuch_2443636.jpg',
requiredRole: 'elogbook_access'
- },
+ },
{
name: 'Bereitschaftsplanung',
cols: 1,
@@ -33,7 +33,7 @@
link: 'https://www.openkonsequenz.de/anwender/11-geplante-projekte/94-bereitschaftsplan',
pictureLink: 'https://www.openkonsequenz.de/medien/cache/main_image/l_bereitschaftsplan_57882047.jpg',
requiredRole: 'planning_access'
- },
+ },
{
name: 'Einspeisemanagement',
cols: 1,
@@ -51,7 +51,7 @@
link: 'https://www.openkonsequenz.de/anwender/11-geplante-projekte/64-geplante-netzmassnahme',
// tslint:disable-next-line:max-line-length
pictureLink: 'https://www.openkonsequenz.de//components/com_flexicontent/librairies/phpthumb/phpThumb.php?src=/medien/cache/main_image/l_ok_module5.jpg',
- requiredRole: 'planned_policies_access'
+ requiredRole: 'planned_policies_access'
}
];
@@ -65,4 +65,17 @@
pictureLink: 'https://www.openkonsequenz.de/medien/cache/main_image/m_logbuch_2443636.jpg',
requiredRole: 'elogbook_access'
}
-];
\ No newline at end of file
+];
+
+export const PGM_MODULE: UserModule =
+ {
+ name: 'Geplante Maßnahmen',
+ cols: 1,
+ rows: 1,
+ color: '#ffffff',
+ link: 'http://localhost:4220',
+ // tslint:disable-next-line:max-line-length
+ pictureLink: 'https://www.openkonsequenz.de//components/com_flexicontent/librairies/phpthumb/phpThumb.php?src=/medien/cache/main_image/l_ok_module5.jpg',
+ requiredRole: 'planned_policies_access'
+ }
+ ;
\ No newline at end of file