mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-22 09:32:41 +00:00
fix: prevent multiple heavy setting inits
This commit is contained in:
committed by
Rainer Killinger
parent
15ccbe4c18
commit
f7726378f4
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2022 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
describe('canteen', function () {
|
||||
@@ -27,14 +27,17 @@ describe('canteen', function () {
|
||||
);
|
||||
});
|
||||
|
||||
it('should have a the default price', function () {
|
||||
it('should not utilize the default price', function () {
|
||||
cy.visit('/data-detail/86464b64-da1e-5578-a5c4-eec23457f596');
|
||||
cy.contains('4,40 €').should('exist');
|
||||
cy.contains('4,40 €').should('not.exist');
|
||||
});
|
||||
|
||||
it('should have a student price', function () {
|
||||
cy.visit('/settings');
|
||||
cy.contains('stapps-settings-item', 'Gruppe').find('ion-select').click();
|
||||
cy.contains('stapps-settings-item', 'Gruppe')
|
||||
.find('ion-select')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
cy.get('ion-popover').contains('ion-item', 'Studierende').click();
|
||||
cy.wait(2000);
|
||||
cy.visit('/data-detail/86464b64-da1e-5578-a5c4-eec23457f596');
|
||||
@@ -43,7 +46,10 @@ describe('canteen', function () {
|
||||
|
||||
it('should have an employee price', function () {
|
||||
cy.visit('/settings');
|
||||
cy.contains('stapps-settings-item', 'Gruppe').find('ion-select').click();
|
||||
cy.contains('stapps-settings-item', 'Gruppe')
|
||||
.find('ion-select')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
cy.get('ion-popover').contains('ion-item', 'Angestellte').click();
|
||||
cy.wait(2000);
|
||||
cy.visit('/data-detail/86464b64-da1e-5578-a5c4-eec23457f596');
|
||||
@@ -52,7 +58,10 @@ describe('canteen', function () {
|
||||
|
||||
it('should have a guest price', function () {
|
||||
cy.visit('/settings');
|
||||
cy.contains('stapps-settings-item', 'Gruppe').find('ion-select').click();
|
||||
cy.contains('stapps-settings-item', 'Gruppe')
|
||||
.find('ion-select')
|
||||
.should('be.visible')
|
||||
.click();
|
||||
cy.get('ion-popover').contains('ion-item', 'Gäste').click();
|
||||
cy.wait(2000);
|
||||
cy.visit('/data-detail/86464b64-da1e-5578-a5c4-eec23457f596');
|
||||
|
||||
@@ -184,7 +184,9 @@ describe('dashboard', async function () {
|
||||
it('should go to search when clicking the icon', function () {
|
||||
cy.visit('/overview');
|
||||
|
||||
cy.get('stapps-search-section').find('ion-icon[name=search]').click();
|
||||
cy.get('stapps-search-section')
|
||||
.find('ion-icon[name=search]')
|
||||
.click({force: true});
|
||||
cy.url().should('eq', Cypress.config().baseUrl + '/search?query=');
|
||||
cy.get('ion-searchbar').should('not.have.value');
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (C) 2022 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
* You should have received a copy of the GNU General Public License along with
|
||||
* this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
describe('Settings Page', () => {
|
||||
it('should have a proper title', () => {
|
||||
@@ -21,7 +21,9 @@ describe('Settings Page', () => {
|
||||
|
||||
it('should change language', () => {
|
||||
cy.visit('/settings');
|
||||
cy.contains('ion-select', 'Deutsch').click();
|
||||
cy.contains('ion-select', 'Deutsch')
|
||||
.should('be.visible')
|
||||
.click({force: true});
|
||||
cy.get('ion-popover').contains('ion-item', 'English').click();
|
||||
cy.get('ion-popover').should('not.exist');
|
||||
cy.get('ion-title').contains('Settings');
|
||||
|
||||
@@ -45,7 +45,10 @@ beforeEach(async function () {
|
||||
for (const database of databases) {
|
||||
if (database) {
|
||||
console.log(`Deleting database ${database}`);
|
||||
window.indexedDB.deleteDatabase(database);
|
||||
await new Promise(
|
||||
resolve =>
|
||||
(window.indexedDB.deleteDatabase(database).onsuccess = resolve),
|
||||
);
|
||||
console.log(`Deleted database ${database}`);
|
||||
}
|
||||
}
|
||||
|
||||
6
package-lock.json
generated
6
package-lock.json
generated
@@ -7414,9 +7414,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"cypress": {
|
||||
"version": "10.9.0",
|
||||
"resolved": "https://registry.npmjs.org/cypress/-/cypress-10.9.0.tgz",
|
||||
"integrity": "sha512-MjIWrRpc+bQM9U4kSSdATZWZ2hUqHGFEQTF7dfeZRa4MnalMtc88FIE49USWP2ZVtfy5WPBcgfBX+YorFqGElA==",
|
||||
"version": "10.11.0",
|
||||
"resolved": "https://registry.npmjs.org/cypress/-/cypress-10.11.0.tgz",
|
||||
"integrity": "sha512-lsaE7dprw5DoXM00skni6W5ElVVLGAdRUUdZjX2dYsGjbY/QnpzWZ95Zom1mkGg0hAaO/QVTZoFVS7Jgr/GUPA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@cypress/request": "^2.88.10",
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
"@typescript-eslint/parser": "5.35.1",
|
||||
"conventional-changelog-cli": "2.2.2",
|
||||
"cordova-res": "0.15.4",
|
||||
"cypress": "10.9.0",
|
||||
"cypress": "10.11.0",
|
||||
"eslint": "8.24.0",
|
||||
"eslint-config-prettier": "8.5.0",
|
||||
"eslint-plugin-jsdoc": "39.3.6",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2019, 2020 StApps
|
||||
* Copyright (C) 2022 StApps
|
||||
* This program is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the Free
|
||||
* Software Foundation, version 3.
|
||||
@@ -96,6 +96,8 @@ export class SettingsProvider {
|
||||
*/
|
||||
private settingsActionSource = new Subject<SettingsAction>();
|
||||
|
||||
private needsInit = true;
|
||||
|
||||
/**
|
||||
* Order of the setting categories
|
||||
*/
|
||||
@@ -332,6 +334,9 @@ export class SettingsProvider {
|
||||
* Initializes settings from config and stored values if exist
|
||||
*/
|
||||
public async init(): Promise<void> {
|
||||
if (!this.needsInit) return;
|
||||
this.needsInit = false;
|
||||
|
||||
try {
|
||||
const settings: SCSetting[] = this.configProvider.getValue(
|
||||
'settings',
|
||||
@@ -390,6 +395,7 @@ export class SettingsProvider {
|
||||
*/
|
||||
public async reset(): Promise<void> {
|
||||
await this.storage.put(STORAGE_KEY_SETTING_VALUES, {});
|
||||
this.needsInit = true;
|
||||
await this.init();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user