parent
9e22e1bfde
commit
38e1e03b26
@ -0,0 +1,54 @@
|
||||
defmodule LinkShortenerWeb.Features.LinkLiveTest do
|
||||
use ExUnit.Case
|
||||
use Wallaby.Feature
|
||||
|
||||
import LinkShortener.LinksFixtures
|
||||
import LinkShortener.AccountsFixtures
|
||||
|
||||
alias LinkShortener.Factories.UserFactory
|
||||
alias LinkShortener.Factories.LinkFactory
|
||||
|
||||
alias LinkShortener.Links
|
||||
alias LinkShortener.Links.Link
|
||||
|
||||
@create_attrs %{name: "some name", shorten: "some shorten", url: "some url"}
|
||||
@update_attrs %{name: "some updated name", shorten: "some updated shorten", url: "some updated url"}
|
||||
@invalid_attrs %{name: nil, shorten: nil, url: nil}
|
||||
|
||||
setup %{session: session} do
|
||||
user_attrs = UserFactory.user_attrs_factory()
|
||||
user = user_fixture(user_attrs)
|
||||
link = LinkFactory.create_link(%{user_id: user.id})
|
||||
|
||||
%{session: log_in_user(session, user_attrs),
|
||||
user: user,
|
||||
user_attrs: user_attrs,
|
||||
link: link}
|
||||
end
|
||||
|
||||
describe "Index" do
|
||||
test "saves new link without a random shorten", %{session: session} do
|
||||
new_link = LinkFactory.link_attrs_factory()
|
||||
|
||||
session
|
||||
|> visit("/links")
|
||||
|> click(Query.button("New Link"))
|
||||
|> click(Query.checkbox("Random shorten"))
|
||||
|> fill_in(Query.text_field("Name"), with: new_link.name)
|
||||
|> fill_in(Query.text_field("Url"), with: new_link.url)
|
||||
|> fill_in(Query.text_field("Shorten"), with: new_link.shorten)
|
||||
|> click(Query.button("Save Link"))
|
||||
|> assert_has(Query.xpath("//*[@id='flash-info']", text: "Link created successfully"))
|
||||
|
||||
assert Links.get_one_by_shorten(new_link.shorten)
|
||||
end
|
||||
end
|
||||
|
||||
def log_in_user(session, user) do
|
||||
session
|
||||
|> visit("/users/log_in/")
|
||||
|> fill_in(Query.text_field("Email"), with: user.email)
|
||||
|> fill_in(Query.text_field("Password"), with: user.password)
|
||||
|> click(Query.button("Log in"))
|
||||
end
|
||||
end
|
Loading…
Reference in new issue