feat!: make a project using mix

This commit is contained in:
Moritz Böhme 2024-08-04 13:21:15 +02:00
parent 323d35cad2
commit 222968c495
No known key found for this signature in database
GPG key ID: 970C6E89EB0547A9
11 changed files with 301 additions and 139 deletions

1
test/test_helper.exs Normal file
View file

@ -0,0 +1 @@
ExUnit.start()

View file

@ -0,0 +1,19 @@
defmodule Todo.TestCSVImporter do
use ExUnit.Case
alias Todo.CSVImporter
alias Todo.List
test "simple correct csv" do
file_path = Path.join(__DIR__, "./files/todo_list.csv")
list = CSVImporter.import(file_path)
assert [
%{date: ~D[2024-12-19], title: "Dentist"},
%{date: ~D[2024-12-19], title: "Movies"}
] = List.entries(list, ~D[2024-12-19])
assert [
%{date: ~D[2024-12-20], title: "Shopping"}
] = List.entries(list, ~D[2024-12-20])
end
end

View file

@ -0,0 +1,3 @@
2024-12-19,Dentist
2024-12-20,Shopping
2024-12-19,Movies
1 2024-12-19 Dentist
2 2024-12-20 Shopping
3 2024-12-19 Movies

89
test/todo/list_test.exs Normal file
View file

@ -0,0 +1,89 @@
defmodule Todo.TestList do
use ExUnit.Case
alias Todo.List
test "simple usage" do
list = List.new()
assert [] = List.entries(list, ~D[2024-08-04])
list = List.add(list, %{date: ~D[2024-08-04], title: "Write some Elixir"})
assert [%{date: ~D[2024-08-04], title: "Write some Elixir"}] =
List.entries(list, ~D[2024-08-04])
end
test "id starts at 1 and increases by 1" do
list = List.new()
list = List.add(list, %{date: ~D[2024-08-04], title: "Write some Elixir"})
assert [%{date: ~D[2024-08-04], title: "Write some Elixir", id: 1}] =
List.entries(list, ~D[2024-08-04])
list = List.add(list, %{date: ~D[2024-08-04], title: "Write more Elixir"})
assert [
%{date: ~D[2024-08-04], title: "Write some Elixir", id: 1},
%{date: ~D[2024-08-04], title: "Write more Elixir", id: 2}
] =
List.entries(list, ~D[2024-08-04])
end
test "new/1 has expected elements" do
list =
List.new([
%{date: ~D[2024-08-04], title: "Write some Elixir"},
%{date: ~D[2024-08-04], title: "Write more Elixir"}
])
assert [
%{date: ~D[2024-08-04], title: "Write some Elixir"},
%{date: ~D[2024-08-04], title: "Write more Elixir"}
] =
List.entries(list, ~D[2024-08-04])
end
test "entries returns correct dates" do
list =
List.new([
%{date: ~D[2024-08-03], title: "Prepare writing Elixir"},
%{date: ~D[2024-08-04], title: "Write some Elixir"},
%{date: ~D[2024-08-05], title: "Pause writing Elixir"},
%{date: ~D[2024-08-04], title: "Write more Elixir"}
])
assert [%{date: ~D[2024-08-04]}, %{date: ~D[2024-08-04]}] = List.entries(list, ~D[2024-08-04])
end
test "update/3 updates selected entry" do
list =
List.new([
%{date: ~D[2024-08-04], title: "Write some Elixir"},
%{date: ~D[2024-08-04], title: "Write more Elixir"}
])
updated =
List.update(list, 1, fn %{title: title} = entry ->
%{entry | title: String.upcase(title)}
end)
assert [
%{date: ~D[2024-08-04], title: "WRITE SOME ELIXIR"},
%{date: ~D[2024-08-04], title: "Write more Elixir"}
] =
List.entries(updated, ~D[2024-08-04])
end
test "delete/2" do
list =
List.new([
%{date: ~D[2024-08-04], title: "Write some Elixir"},
%{date: ~D[2024-08-04], title: "Write more Elixir"}
])
new_list = List.delete(list, 2)
assert [
%{date: ~D[2024-08-04], title: "Write some Elixir"}
] = List.entries(new_list, ~D[2024-08-04])
end
end