Sha256: 960e28a0fda2d50d9dd38703f7759d06705f4ca02193898a876df33f3290efab

Contents?: true

Size: 1.58 KB

Versions: 8

Compression:

Stored size: 1.58 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 '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

8 entries across 8 versions & 1 rubygems

Version Path
ckeditor5-1.23.5 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.23.4 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.23.3 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.23.2 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.23.1 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.23.0 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.22.0 spec/e2e/features/lazy_assets_spec.rb
ckeditor5-1.21.0 spec/e2e/features/lazy_assets_spec.rb