Add license activation link to read only banner
This commit is contained in:
parent
dc43b88916
commit
def93672fc
|
|
@ -4,22 +4,11 @@ const getOperations = ({readOnly, classReadOnly = false}) => ({
|
||||||
MeQuery: getMinimalMe({readOnly, classReadOnly}),
|
MeQuery: getMinimalMe({readOnly, classReadOnly}),
|
||||||
NewsTeasers: {
|
NewsTeasers: {
|
||||||
newsTeasers: {
|
newsTeasers: {
|
||||||
edges: []
|
edges: [],
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const checkReadOnly = (shouldBannerExist, text) => {
|
|
||||||
cy.visit('/');
|
|
||||||
|
|
||||||
cy.getByDataCy('start-page-heading').should('exist');
|
|
||||||
if (shouldBannerExist) {
|
|
||||||
cy.getByDataCy('read-only-banner').should('exist').should('contain', text);
|
|
||||||
} else {
|
|
||||||
cy.getByDataCy('read-only-banner').should('not.exist');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
describe('Read Only Banner', () => {
|
describe('Read Only Banner', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
cy.setup();
|
cy.setup();
|
||||||
|
|
@ -29,19 +18,28 @@ describe('Read Only Banner', () => {
|
||||||
cy.mockGraphqlOps({
|
cy.mockGraphqlOps({
|
||||||
operations: getOperations({readOnly: false}),
|
operations: getOperations({readOnly: false}),
|
||||||
});
|
});
|
||||||
checkReadOnly(false);
|
|
||||||
|
cy.visit('/');
|
||||||
|
|
||||||
|
cy.getByDataCy('start-page-heading').should('exist');
|
||||||
|
cy.getByDataCy('read-only-banner').should('not.exist');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('is shown for expired license', () => {
|
it('is shown for expired license', () => {
|
||||||
cy.mockGraphqlOps({
|
cy.mockGraphqlOps({
|
||||||
operations: getOperations({readOnly: true}),
|
operations: getOperations({readOnly: true}),
|
||||||
});
|
});
|
||||||
checkReadOnly(true, 'Lizenz');
|
|
||||||
|
|
||||||
// cy.visit('/');
|
cy.visit('/');
|
||||||
//
|
|
||||||
// cy.getByDataCy('start-page-heading').should('exist');
|
cy.getByDataCy('start-page-heading').should('exist');
|
||||||
// cy.getByDataCy('read-only-banner').should('exist').should('contain', 'nicht mehr aktiv');
|
|
||||||
|
cy.getByDataCy('read-only-banner').should('exist').should('contain', 'Lizenz');
|
||||||
|
cy.getByDataCy('license-activation-link')
|
||||||
|
.should('exist')
|
||||||
|
.should('contain', 'Neuen Lizenzcode eingeben')
|
||||||
|
.click();
|
||||||
|
cy.url().should('contain', 'license-activation');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('is shown for inactive school class', () => {
|
it('is shown for inactive school class', () => {
|
||||||
|
|
@ -49,11 +47,11 @@ describe('Read Only Banner', () => {
|
||||||
operations: getOperations({readOnly: false, classReadOnly: true}),
|
operations: getOperations({readOnly: false, classReadOnly: true}),
|
||||||
});
|
});
|
||||||
|
|
||||||
checkReadOnly(true, 'Klasse');
|
cy.visit('/');
|
||||||
//
|
|
||||||
// cy.visit('/');
|
|
||||||
|
|
||||||
// cy.getByDataCy('start-page-heading').should('exist');
|
cy.getByDataCy('start-page-heading').should('exist');
|
||||||
// cy.getByDataCy('read-only-banner').should('exist').should('contain', 'nicht mehr aktiv');
|
|
||||||
|
cy.getByDataCy('read-only-banner').should('exist').should('contain', 'Klasse');
|
||||||
|
cy.getByDataCy('license-activation-link').should('not.exist');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,18 @@
|
||||||
v-if="me.readOnly || me.selectedClass.readOnly">
|
v-if="me.readOnly || me.selectedClass.readOnly">
|
||||||
<p class="read-only-banner__text">
|
<p class="read-only-banner__text">
|
||||||
{{ readOnlyText }} Sie können Inhalte lesen, aber nicht
|
{{ readOnlyText }} Sie können Inhalte lesen, aber nicht
|
||||||
bearbeiten.
|
bearbeiten. <router-link
|
||||||
|
:to="licenseActivationLink"
|
||||||
|
data-cy="license-activation-link"
|
||||||
|
class="read-only-banner__link"
|
||||||
|
v-if="me.readOnly">Neuen Lizenzcode eingeben</router-link>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import gql from 'graphql-tag';
|
import gql from 'graphql-tag';
|
||||||
|
import {LICENSE_ACTIVATION} from '@/router/auth.names';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
|
|
@ -22,6 +27,9 @@
|
||||||
readOnly: false,
|
readOnly: false,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
licenseActivationLink: {
|
||||||
|
name: LICENSE_ACTIVATION
|
||||||
|
}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
@ -73,5 +81,9 @@
|
||||||
@include regular-text;
|
@include regular-text;
|
||||||
max-width: $screen-width;
|
max-width: $screen-width;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&__link {
|
||||||
|
@include default-link;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
import hello from '@/pages/hello';
|
import hello from '@/pages/hello';
|
||||||
import betaLogin from '@/pages/beta-login';
|
import betaLogin from '@/pages/beta-login';
|
||||||
import loginError from '@/pages/login-error';
|
import loginError from '@/pages/login-error';
|
||||||
|
import licenseActivation from '@/pages/license-activation';
|
||||||
|
import {LICENSE_ACTIVATION} from '@/router/auth.names';
|
||||||
|
|
||||||
export default [
|
export default [
|
||||||
{
|
{
|
||||||
|
|
@ -49,4 +51,12 @@ export default [
|
||||||
layout: 'public',
|
layout: 'public',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/license-activation',
|
||||||
|
component: licenseActivation,
|
||||||
|
name: LICENSE_ACTIVATION,
|
||||||
|
meta: {
|
||||||
|
layout: 'public',
|
||||||
|
},
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ import submission from '@/pages/studentSubmission';
|
||||||
import Router from 'vue-router';
|
import Router from 'vue-router';
|
||||||
import surveyPage from '@/pages/survey';
|
import surveyPage from '@/pages/survey';
|
||||||
import styleGuidePage from '@/pages/styleguide';
|
import styleGuidePage from '@/pages/styleguide';
|
||||||
import licenseActivation from '@/pages/license-activation';
|
|
||||||
import joinClass from '@/pages/joinClass';
|
import joinClass from '@/pages/joinClass';
|
||||||
import news from '@/pages/news';
|
import news from '@/pages/news';
|
||||||
|
|
||||||
|
|
@ -55,14 +54,6 @@ const routes = [
|
||||||
props: true,
|
props: true,
|
||||||
meta: {layout: LAYOUT_SIMPLE},
|
meta: {layout: LAYOUT_SIMPLE},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: '/license-activation',
|
|
||||||
component: licenseActivation,
|
|
||||||
name: 'licenseActivation',
|
|
||||||
meta: {
|
|
||||||
layout: 'public',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: '/news',
|
path: '/news',
|
||||||
component: news,
|
component: news,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue