add backlinks
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing

This commit is contained in:
2025-02-15 06:00:37 +00:00
parent 6c2aba84ef
commit 0c5442f0cd
25 changed files with 502 additions and 147 deletions

View File

@ -108,6 +108,25 @@ defmodule Memex.ContextsTest do
assert Contexts.get_context_by_slug("c", user) == context
end
test "backlink/2 returns contexts with backlinks", %{user: user} do
context_fixture(%{slug: "a", visibility: :public}, user)
assert Contexts.backlink("[a]", user) == []
context = context_fixture(%{slug: "b", content: "[a]", visibility: :unlisted}, user)
assert Contexts.backlink("[a]", user) == [context]
assert Contexts.backlink("[b]", user) == []
end
test "backlink/2 only returns public contexts for empty user", %{user: user} do
context_fixture(%{slug: "a", visibility: :public}, user)
context_fixture(%{slug: "b", content: "[a]", visibility: :unlisted}, user)
context_fixture(%{slug: "c", content: "[a]", visibility: :private}, user)
assert Contexts.backlink("[a]", nil) == []
context = context_fixture(%{slug: "d", content: "[a]", visibility: :public}, user)
assert Contexts.backlink("[a]", nil) == [context]
end
test "create_context/1 with valid data creates a context", %{user: user} do
valid_attrs = %{
content: "some content",

View File

@ -109,6 +109,25 @@ defmodule Memex.NotesTest do
assert Notes.get_note_by_slug("c", user) == note
end
test "backlink/2 returns notes with backlinks", %{user: user} do
note_fixture(%{slug: "a", visibility: :public}, user)
assert Notes.backlink("[a]", user) == []
note = note_fixture(%{slug: "b", content: "[a]", visibility: :unlisted}, user)
assert Notes.backlink("[a]", user) == [note]
assert Notes.backlink("[b]", user) == []
end
test "backlink/2 only returns public notes for empty user", %{user: user} do
note_fixture(%{slug: "a", visibility: :public}, user)
note_fixture(%{slug: "b", content: "[a]", visibility: :unlisted}, user)
note_fixture(%{slug: "c", content: "[a]", visibility: :private}, user)
assert Notes.backlink("[a]", nil) == []
note = note_fixture(%{slug: "d", content: "[a]", visibility: :public}, user)
assert Notes.backlink("[a]", nil) == [note]
end
test "create_note/1 with valid data creates a note", %{user: user} do
valid_attrs = %{
content: "some content",

View File

@ -108,6 +108,25 @@ defmodule Memex.PipelinesTest do
assert Pipelines.get_pipeline_by_slug("c", user) == pipeline
end
test "backlink/2 returns pipelines with backlinks", %{user: user} do
pipeline_fixture(%{slug: "a", visibility: :public}, user)
assert Pipelines.backlink("[a]", user) == []
pipeline = pipeline_fixture(%{slug: "b", description: "[a]", visibility: :unlisted}, user)
assert Pipelines.backlink("[a]", user) == [pipeline]
assert Pipelines.backlink("[b]", user) == []
end
test "backlink/2 only returns public pipelines for empty user", %{user: user} do
pipeline_fixture(%{slug: "a", visibility: :public}, user)
pipeline_fixture(%{slug: "b", description: "[a]", visibility: :unlisted}, user)
pipeline_fixture(%{slug: "c", description: "[a]", visibility: :private}, user)
assert Pipelines.backlink("[a]", nil) == []
pipeline = pipeline_fixture(%{slug: "d", description: "[a]", visibility: :public}, user)
assert Pipelines.backlink("[a]", nil) == [pipeline]
end
test "create_pipeline/1 with valid data creates a pipeline", %{user: user} do
valid_attrs = %{
description: "some description",