100 lines
2.8 KiB
JavaScript
100 lines
2.8 KiB
JavaScript
const schema = require('../fixtures/schema.json');
|
|
const me = require('../fixtures/me.join-class.json');
|
|
const selectedClass = require('../fixtures/selected-school-class.json');
|
|
|
|
describe('Class Management', () => {
|
|
beforeEach(() => {
|
|
cy.server();
|
|
|
|
cy.mockGraphql({
|
|
schema: schema,
|
|
});
|
|
|
|
cy.viewport('macbook-15');
|
|
cy.apolloLogin('rahel.cueni', 'test');
|
|
|
|
});
|
|
|
|
it('should join class', () => {
|
|
cy.mockGraphqlOps({
|
|
operations: {
|
|
MeQuery: me,
|
|
JoinClass: {
|
|
joinClass: {
|
|
success: true,
|
|
schoolClass: {
|
|
id: "U2Nob29sQ2xhc3NOb2RlOjI=",
|
|
name: "KF1A",
|
|
__typename: "SchoolClassNode"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
cy.visit('/me/profile');
|
|
|
|
cy.get('[data-cy=header-user-widget]').within(() => {
|
|
cy.get('[data-cy=user-widget-avatar]').click();
|
|
});
|
|
cy.get('[data-cy=class-selection]').click();
|
|
cy.get('[data-cy=class-selection-entry]').should('have.length', 1);
|
|
|
|
cy.get('[data-cy=join-class-link]').click();
|
|
|
|
cy.get('[data-cy=input-class-code]').type('XXXX');
|
|
cy.get('[data-cy=join-class]').click();
|
|
|
|
cy.get('[data-cy=header-user-widget]').within(() => {
|
|
cy.get('[data-cy=user-widget-avatar]').click();
|
|
});
|
|
|
|
cy.get('[data-cy=class-selection]').click();
|
|
cy.get('[data-cy=class-selection-entry]').should('have.length', 2);
|
|
});
|
|
|
|
it('should leave and re-join class', () => {
|
|
const teacher = {
|
|
...me,
|
|
permissions: ['users.can_manage_school_class_content']
|
|
};
|
|
cy.mockGraphqlOps({
|
|
operations: {
|
|
MeQuery: teacher,
|
|
AddRemoveMember: {
|
|
addRemoveMember: {
|
|
success: true
|
|
}
|
|
},
|
|
MySchoolClassQuery: selectedClass
|
|
}
|
|
});
|
|
|
|
cy.visit('/me/my-class');
|
|
cy.get('[data-cy=active-class-members-list]').within(() => {
|
|
cy.get('[data-cy=school-class-member]').should('have.length', 2)
|
|
});
|
|
cy.get('[data-cy=inactive-class-members-list]').within(() => {
|
|
cy.get('[data-cy=school-class-member]').should('have.length', 0)
|
|
});
|
|
|
|
cy.get('[data-cy=remove-from-class]').first().click();
|
|
|
|
cy.get('[data-cy=active-class-members-list]').within(() => {
|
|
cy.get('[data-cy=school-class-member]').should('have.length', 1)
|
|
});
|
|
cy.get('[data-cy=inactive-class-members-list]').within(() => {
|
|
cy.get('[data-cy=school-class-member]').should('have.length', 1)
|
|
});
|
|
|
|
cy.get('[data-cy=add-to-class]').first().click();
|
|
|
|
cy.get('[data-cy=active-class-members-list]').within(() => {
|
|
cy.get('[data-cy=school-class-member]').should('have.length', 2)
|
|
});
|
|
cy.get('[data-cy=inactive-class-members-list]').within(() => {
|
|
cy.get('[data-cy=school-class-member]').should('have.length', 0)
|
|
});
|
|
});
|
|
});
|