64 lines
1.8 KiB
Elixir
64 lines
1.8 KiB
Elixir
|
|
defmodule Omnibot.ConfigTest do
|
||
|
|
use ExUnit.Case, async: true
|
||
|
|
doctest Omnibot.Config
|
||
|
|
alias Omnibot.Config
|
||
|
|
|
||
|
|
test "channel_plugins works correctly" do
|
||
|
|
cfg = %Config {
|
||
|
|
server: "test",
|
||
|
|
plugins: [
|
||
|
|
{FooBar, channels: ["#foo", "#bar"]},
|
||
|
|
{Foo, channels: ["#foo"]},
|
||
|
|
{Bar, channels: ["#bar"]},
|
||
|
|
{Baz, channels: ["#baz"]},
|
||
|
|
{All, channels: :all},
|
||
|
|
]
|
||
|
|
}
|
||
|
|
|
||
|
|
plugins = Config.channel_plugins(cfg, "#foo")
|
||
|
|
|> Enum.map(fn {plugin, _} -> plugin end)
|
||
|
|
assert length(plugins) == 3
|
||
|
|
assert Enum.member?(plugins, FooBar)
|
||
|
|
assert Enum.member?(plugins, Foo)
|
||
|
|
assert Enum.member?(plugins, All)
|
||
|
|
|
||
|
|
plugins = Config.channel_plugins(cfg, "#bar")
|
||
|
|
|> Enum.map(fn {plugin, _} -> plugin end)
|
||
|
|
assert length(plugins) == 3
|
||
|
|
assert Enum.member?(plugins, FooBar)
|
||
|
|
assert Enum.member?(plugins, Bar)
|
||
|
|
assert Enum.member?(plugins, All)
|
||
|
|
|
||
|
|
plugins = Config.channel_plugins(cfg, "#baz")
|
||
|
|
|> Enum.map(fn {plugin, _} -> plugin end)
|
||
|
|
assert length(plugins) == 2
|
||
|
|
assert Enum.member?(plugins, Baz)
|
||
|
|
assert Enum.member?(plugins, All)
|
||
|
|
|
||
|
|
plugins = Config.channel_plugins(cfg, nil)
|
||
|
|
|> Enum.map(fn {plugin, _} -> plugin end)
|
||
|
|
assert length(plugins) == 1
|
||
|
|
assert Enum.member?(plugins, All)
|
||
|
|
end
|
||
|
|
|
||
|
|
test "all_channels works correctly" do
|
||
|
|
cfg = %Config {
|
||
|
|
server: "testing",
|
||
|
|
plugins: [
|
||
|
|
{FooBar, channels: ["#foo", "#bar"]},
|
||
|
|
{Foo, channels: ["#foo"]},
|
||
|
|
{Bar, channels: ["#bar"]},
|
||
|
|
{Baz, channels: ["#baz"]},
|
||
|
|
{All, channels: :all},
|
||
|
|
],
|
||
|
|
}
|
||
|
|
|
||
|
|
channels = Config.all_channels(cfg)
|
||
|
|
|
||
|
|
assert length(channels) == 3
|
||
|
|
assert Enum.member?(channels, "#foo")
|
||
|
|
assert Enum.member?(channels, "#bar")
|
||
|
|
assert Enum.member?(channels, "#baz")
|
||
|
|
end
|
||
|
|
end
|