UNPKG

stimulus_reflex

Version:

Build reactive applications with the Rails tooling you already know and love.

93 lines (79 loc) 2.31 kB
import { assert } from '@open-wc/testing' import refute from './refute' import { findControllerByReflexName } from '../controllers' describe('findControllerByReflexName', () => { it('returns undefined if empty controllers array is passed', () => { assert.isUndefined( findControllerByReflexName('click->TestReflex#create', []) ) assert.isUndefined(findControllerByReflexName('click->Test#create', [])) }) it('returns no controller if no matching controller is found', () => { const controller = { identifier: 'test' } const controllers = [ { identifier: 'first' }, controller, { identifier: 'last' } ] assert.isUndefined( findControllerByReflexName('click->NoReflex#create', controllers) ) assert.isUndefined( findControllerByReflexName('click->No#create', controllers) ) }) it('returns matching controller', () => { const controller = { identifier: 'test' } const controllers = [ { identifier: 'first' }, controller, { identifier: 'last' } ] assert.equal( findControllerByReflexName('click->TestReflex#create', controllers), controller ) assert.equal( findControllerByReflexName('click->Test#create', controllers), controller ) }) it('returns matching namespaced controller', () => { const controller = { identifier: 'some--deep--module--test' } const controllers = [ { identifier: 'first' }, controller, { identifier: 'last' } ] assert.equal( findControllerByReflexName( 'click->Some::Deep::Module::TestReflex#create', controllers ), controller ) assert.equal( findControllerByReflexName( 'click->Some::Deep::Module::Test#create', controllers ), controller ) }) it('returns dasherized controller', () => { const controller = { identifier: 'some-thing' } const controllers = [ { identifier: 'first' }, controller, { identifier: 'last' } ] assert.equal( findControllerByReflexName('click->SomeThingReflex#create', controllers), controller ) assert.equal( findControllerByReflexName('click->SomeThing#create', controllers), controller ) }) })