48 lines
1.6 KiB
Ruby
48 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
describe 'Alias syntax' do
|
|
it 'colorize only module alias' do
|
|
str = "Enum.empty?(...)"
|
|
expect(str).to include_elixir_syntax('elixirAlias', 'Enum')
|
|
expect(str).to include_elixir_syntax('elixirOperator', '\.')
|
|
expect(str).to include_elixir_syntax('elixirId', 'empty?')
|
|
end
|
|
|
|
it 'colorize the module alias even if it starts with `!`' do
|
|
expect(<<~EOF).to include_elixir_syntax('elixirAlias', 'Enum')
|
|
!Enum.empty?(...)
|
|
EOF
|
|
end
|
|
|
|
it 'does not colorize the preceding ! in an alias' do
|
|
expect(<<~EOF).not_to include_elixir_syntax('elixirAlias', '!')
|
|
!Enum.empty?(...)
|
|
EOF
|
|
end
|
|
|
|
it 'does not colorize words starting with lowercase letters' do
|
|
expect(<<~EOF).not_to include_elixir_syntax('elixirAlias', 'aEnum')
|
|
aEnum.empty?(...)
|
|
EOF
|
|
end
|
|
|
|
it 'colorizes numbers in aliases' do
|
|
str = "S3Manager"
|
|
expect(str).to include_elixir_syntax('elixirAlias', 'S')
|
|
expect(str).to include_elixir_syntax('elixirAlias', '3')
|
|
expect(str).to include_elixir_syntax('elixirAlias', 'Manager')
|
|
end
|
|
|
|
it 'colorize dots in module alias' do
|
|
str = "Foo.Bar.Baz.fun(...)"
|
|
expect(str).to include_elixir_syntax('elixirAlias', 'Foo')
|
|
expect(str).to include_elixir_syntax('elixirAlias', '\.\(Bar\)\@=')
|
|
expect(str).to include_elixir_syntax('elixirAlias', 'Bar')
|
|
expect(str).to include_elixir_syntax('elixirAlias', '\.\(Baz\)\@=')
|
|
expect(str).to include_elixir_syntax('elixirAlias', 'Baz')
|
|
expect(str).to include_elixir_syntax('elixirOperator', '\.\(fun\)\@=')
|
|
expect(str).to include_elixir_syntax('elixirId', 'fun')
|
|
end
|
|
end
|