File: D:/HostingSpaces/SBogers10/shop.komma.nl/tests/Cypress/integration/kms/posts_spec.js
// / <reference types="Cypress" />
import faker from 'faker'
describe('Posts', function() {
it('Should be possible to create a post', function() {
cy.kms_login('kms/posts');
cy.getCsrfToken((csrfToken) => {
cy.request({
method: 'GET',
url: 'testapi/v1/sites/index',
headers: {'X-CSRF-TOKEN': csrfToken},
body: {}
}).then((response) => {
let sites = response.body.data;
let site = sites[0];
let postName = 'Cypress test post '+faker.random.number({min: 10000, max: 99999});
//Click the add button to make a new post
cy.log('Making a new post');
cy.get('[data-test="add_button"]').click();
//Select an author and site
cy.log('Setting the site and the author');
cy.get('[data-test=MultiSelect-site_id-fake]').type('{downarrow}{downarrow}{enter}').wait(350);
cy.get('[data-test=MultiSelect-author_id-fake]').type('{downarrow}{downarrow}{enter}').wait(350);
//Disable the active button
cy.log('Disabling the active toggle');
cy.get('[data-test="OnOff-active_toggle"]').click();
cy.get('[data-test="OnOff-active"]').should('have.value', '0');
//Set a date
cy.log('Setting the date and time');
cy.get('[data-test="DatePicker-date_date"]').type('{backspace}{backspace}{backspace}{backspace}{backspace}{backspace}{backspace}{backspace}{backspace}{backspace}'); //Clear date
cy.get('[data-test="DatePicker-date_date"]').type('02/10/2017');
cy.get('[data-test="DatePicker-date_date"]').type('{enter}');
cy.get('[data-test="DatePicker-date_time_hours"]').type('{backspace}{backspace}');
cy.get('[data-test="DatePicker-date_time_hours"]').type('09');
cy.get('[data-test="DatePicker-date_time_minutes"]').type('{backspace}{backspace}');
cy.get('[data-test="DatePicker-date_time_minutes"]').type('01');
cy.log('Setting a dutch title and saving the post');
cy.get('[data-test="entity_tab_nl"]').click();
cy.get('[data-test="TextField-name-nl"]').type(postName);
cy.get('[data-test="save_button"]').click();
cy.get('[data-test=flash_message]').should('have.attr', 'data-type', '2'); //Data type 2 means success
cy.log('Verify the post');
cy.get('[data-test="entity_tab_algemeen"]').click();
cy.get('[data-test="MultiSelect-site_id_items"]').contains(site.name).should('exist');
cy.get('[data-test="OnOff-active"]').should('have.value', '0');
cy.get('[data-test="DatePicker-date_date"]').should('have.value', '02/10/2017');
cy.get('[data-test="DatePicker-date_time_hours"]').should('have.value', '09');
cy.get('[data-test="DatePicker-date_time_minutes"]').should('have.value', '01');
cy.log('Delete the post');
cy.get('[data-test="entity_search_input"]').type(postName);
cy.get('[data-test="search-result-counter"]').contains('1').should('exist');
cy.get('[data-test="found_search_item"]').click();
cy.get('[data-test="entity_header"]').contains(postName).should('exist');
cy.wait(100)
cy.get('[data-test="delete_button"]').click();
cy.get('[data-test="confirmation_confirm"]').click();
cy.get('[data-test=flash_message]').should('have.attr', 'data-type', '3'); //Data type 3 means general ok
})
});
});
});