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