UNPKG

afterwriting

Version:

Post-processing tools for Fountain screenplays

150 lines (119 loc) 5.94 kB
define(function(require) { var Env = require('acceptance/env'); describe('Save plugin', function() { var env; beforeEach(function() { env = Env.create(); }); afterEach(function() { env.destroy(); }); it('WHEN save fountain locally is clicked THEN filename dialog is displayed AND default file name is screenplay.fountain', function() { // WHEN env.user.save.save_fountain_locally('save'); // THEN env.assert.popup.dialog_form_is_visible(true); env.assert.popup.dialog_message_is('Select file name:'); env.assert.popup.dialog_input_content_is('screenplay.fountain'); }); it('WHEN save pdf locally is clicked THEN filename dialog is displayed AND default file name is screenplay.pdf', function() { // WHEN env.user.save.save_pdf_locally('save'); // THEN env.assert.popup.dialog_form_is_visible(true); env.assert.popup.dialog_message_is('Select file name:'); env.assert.popup.dialog_input_content_is('screenplay.pdf'); }); describe('GIVEN user has a fountain file AND user has a pdf file on Dropbox', function() { beforeEach(function() { // GIVEN env.dropbox.has_file({ name: 'file.fountain', content: 'test content' }); env.dropbox.has_file({ name: 'file.pdf', content: '%%%', mime_type: 'application/pdf' }); }); it('WHEN save fountain to Dropbox is clicked THEN Dropbox save fountain dialog is displayed AND fountain and PDF files are listed AND search bar is not visible', function(done) { // WHEN env.scenarios.initialise_saving_to_dropbox('fountain', function() { // THEN env.assert.popup.tree_node_visible('Dropbox', true); env.assert.popup.tree_node_visible('file.fountain', true); env.assert.popup.tree_node_visible('file.pdf', true); // AND env.assert.popup.search_bar_visible(false); done(); }); }); it('WHEN save pdf to Dropbox is clicked THEN Dropbox save PDF dialog is displayed AND only pdf files are listed', function(done) { // WHEN env.scenarios.initialise_saving_to_dropbox('pdf', function() { // THEN env.assert.popup.tree_node_visible('Dropbox', true); env.assert.popup.tree_node_visible('file.fountain', false); env.assert.popup.tree_node_visible('file.pdf', true); // AND env.assert.popup.search_bar_visible(false); done(); }); }); it('WHEN fountain is saved to Dropbox THEN confirmation message is displayed', function(done) { // WHEN env.scenarios.initialise_saving_to_dropbox('fountain', function() { env.user.popup.select_file('file.fountain'); env.user.popup.save_popup(); Promise.resolve().then(function() { // THEN env.browser.tick(1000); env.assert.dropbox.dropbox_saved(1); env.assert.popup.dialog_message_is('File saved!'); done(); }); }); }); it('WHEN saving fountain file is rejected THEN rejection message is displayed', function(done) { // WHEN env.scenarios.initialise_saving_to_dropbox('fountain', function() { env.user.popup.select_file('file.fountain'); env.dropbox.disable(); env.user.popup.save_popup(); Promise.resolve().then(function() { // THEN env.browser.tick(1000); env.assert.dropbox.dropbox_saved(0); env.assert.popup.dialog_message_is('Could not save the file. Try again later.'); done(); }); }); }); }); it('GIVEN Dropbox is not available THEN Dropbox links are not visible', function() { // GIVEN env.dropbox.disable(); env.scenarios.create_new_script('test'); env.user.theme.open_plugin('save'); // THEN env.assert.io.save_button_visible('dropbox', 'save', 'fountain', false); env.assert.io.save_button_visible('dropbox', 'save', 'pdf', false); env.assert.io.save_button_visible('google_drive', 'save', 'fountain', true); env.assert.io.save_button_visible('google_drive', 'save', 'pdf', true); env.dropbox.enable(); }); it('GIVEN GoogleDrive is not available THEN GoogleDrive links are not visible', function() { // GIVEN env.google_drive.disable(); env.scenarios.create_new_script('test'); env.user.theme.open_plugin('save'); // THEN env.assert.io.save_button_visible('google_drive', 'save', 'fountain', false); env.assert.io.save_button_visible('google_drive', 'save', 'pdf', false); env.assert.io.save_button_visible('dropbox', 'save', 'fountain', true); env.assert.io.save_button_visible('dropbox', 'save', 'pdf', true); env.google_drive.enable(); }); }); });