Sha256: 99a4f08b3b9b5508a1da905db54a18859f1a76d40f957636640e12fede262a61

Contents?: true

Size: 1.78 KB

Versions: 11

Compression:

Stored size: 1.78 KB

Contents

# frozen_string_literal: true

require 'e2e/spec_helper'

RSpec.describe 'Lazy Assets', type: :feature do
  context 'without JavaScript', js: false do
    before do
      visit 'classic_lazy_assets?no_embed=true'
    end

    it 'does not load CKEditor assets' do
      expect(page).not_to have_css('link[href*="ckeditor5"]', visible: false)
      expect(page).not_to have_css('script[src*="ckeditor5"]', visible: false)

      scripts = page.all('script:not([type="importmap"]):not([type="module"])', visible: false)
      external_scripts = scripts.reject { |s| s[:src].nil? }
      expect(external_scripts).not_to include(match(/ckeditor5/))

      expect(page).to have_css('script[type="importmap"]', visible: false)
    end
  end

  context 'with JavaScript', js: true do
    before { visit 'classic_lazy_assets' }

    it 'loads editor when needed' do
      expect(page).to have_css('.ck-editor__editable', wait: 10)
      expect(page).to have_css('link[href*="ckeditor5"]', visible: false)
    end

    it 'initializes editor properly' do
      editor = find('.ck-editor__editable')
      expect(editor).to be_visible

      editor.click
      editor.send_keys('Test content')

      expect(editor).to have_text('Test content')
    end

    it 'initializes the inline plugin' do
      eventually do
        plugin_exists = page.evaluate_script('window.__customPlugin !== undefined')
        expect(plugin_exists).to be true
      end
    end

    it 'supports multiple editor instances' do
      visit 'classic_lazy_assets?multiple=true'

      editors = all('.ck-editor__editable', wait: 10)
      expect(editors.length).to eq(2)

      editors.each do |editor|
        editor.click
        editor.send_keys('Content for editor')
        expect(editor).to have_text('Content for editor')
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
ckeditor5-1.24.10 spec/e2e/features/lazy_assets_spec.rb
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/ckeditor5-1.24.9/spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.24.9 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.24.8 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.24.6 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.24.5 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.24.4 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.24.3 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.24.2 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.24.1 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.24.0 spec/e2e/features/lazy_assets_spec.rb