feat!: make a project using mix
This commit is contained in:
parent
323d35cad2
commit
222968c495
11 changed files with 301 additions and 139 deletions
1
test/test_helper.exs
Normal file
1
test/test_helper.exs
Normal file
|
|
@ -0,0 +1 @@
|
|||
ExUnit.start()
|
||||
19
test/todo/csvimporter_test.exs
Normal file
19
test/todo/csvimporter_test.exs
Normal 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
|
||||
3
test/todo/files/todo_list.csv
Normal file
3
test/todo/files/todo_list.csv
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
2024-12-19,Dentist
|
||||
2024-12-20,Shopping
|
||||
2024-12-19,Movies
|
||||
|
89
test/todo/list_test.exs
Normal file
89
test/todo/list_test.exs
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue