mirror of https://github.com/docusealco/docuseal
parent
87265e2f22
commit
2dca7d8a8e
@ -0,0 +1,37 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module RequestHelper
|
||||
module_function
|
||||
|
||||
def wait_for_fetch
|
||||
page.execute_script(
|
||||
<<~JS
|
||||
if (!window.fetchInitialized) {
|
||||
window.pendingFetchCount = 0;
|
||||
|
||||
const originalFetch = window.fetch;
|
||||
|
||||
window.fetch = function(...args) {
|
||||
window.pendingFetchCount++;
|
||||
|
||||
return originalFetch.apply(this, args).finally(() => {
|
||||
window.pendingFetchCount--;
|
||||
});
|
||||
};
|
||||
|
||||
window.fetchInitialized = true;
|
||||
}
|
||||
JS
|
||||
)
|
||||
|
||||
yield
|
||||
|
||||
Timeout.timeout(Capybara.default_max_wait_time) do
|
||||
loop do
|
||||
break if page.evaluate_script('window.pendingFetchCount') == 0
|
||||
|
||||
sleep 0.1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -0,0 +1,34 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Template Builder' do
|
||||
let(:account) { create(:account) }
|
||||
let(:author) { create(:user, account:) }
|
||||
let(:template) { create(:template, account:, author:, attachment_count: 3, except_field_types: %w[phone payment]) }
|
||||
|
||||
before do
|
||||
sign_in(author)
|
||||
end
|
||||
|
||||
context 'when manage template documents' do
|
||||
before do
|
||||
visit edit_template_path(template)
|
||||
end
|
||||
|
||||
it 'replaces the document' do
|
||||
doc = find("div[id='documents_container'] div[data-document-uuid='#{template.schema[1]['attachment_uuid']}'")
|
||||
doc.click
|
||||
|
||||
expect do
|
||||
wait_for_fetch do
|
||||
doc.find('.replace-document-button').click
|
||||
doc.find('.replace-document-button input[type="file"]', visible: false)
|
||||
.attach_file(Rails.root.join('spec/fixtures/sample-image.png'))
|
||||
end
|
||||
end.to change { template.documents.count }.by(1)
|
||||
|
||||
expect(template.reload['schema'][1]['name']).to eq('sample-image')
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Reference in new issue