wolfiton
Hi everyone,
I have a problem of understanding how this test should like on chapter 8 My order exercise here https://shankardevy.com/phoenix-inside-out-mpf/#chapter-8
Question
I created my test like so
test "get_order/1" do
assert %Order{status: "Confirmed"} = Sales.get_order()
end
But I don’t understand how to get the order for the current user without using Repo or conn here?
Expected result:
To get the order history of the current user in this test.
Thanks in advance for any hints or directions.
Update I started to write something like this
test "create_order" do
@valid_attrs %{
"order_id" => 1
"status" => "Confirmed"
}
end
Didn’t work because I don’t have a create order func in my schema can someone show me what i am doing wrong?
Thanks, because i really want to understand how to build this test correctly.
Trending in Chat/Questions
Other Trending Topics
Edit: 2026 May 15 - This post is archived.
Mob is alive!!
Main docs: mob v0.7.11 — Documentation
A bit of explanation for the slightly c...
New
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
I am happy to introduce the very α version of the new programming language compiled to BEAM.
Welcome Cure.
It has literally three kille...
New
Hobbes is a low-level distributed database for the Elixir programming language.
Hobbes provides a simple, safe, and scalable storage lay...
New
Hi everyone!
The first release candidate for the Expert language server project is now available!
We’ve published a press release detai...
New
A little off-topic, but I feel like people here have a good head on their shoulders.
I used to be quite good at making software. Was luc...
New
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ai
- #ecto-query
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #metaprogramming
- #hex










Showing Posts 1 to 5- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
al2o3cr
It’s hard to know for sure without more code, but I’ll take some guesses.
Sales.get_orderis a context function - it likely uses your Repo under the hood.That function can’t take zero args - which order is it getting? For what user? You’ll likely want to pass in the user.
The
setupfunctions in your test file should be setting up things like the current user and orders then passing them into the tests like:I’m also not sure if
get_orderis the right name; chapter 8 talks about viewing the user’s order history, so the logical thing to return is a list of orders - something likeSales.get_orders(user)I don’t understand what the intent of this code is, or how exactly it would fail. You’ll get more effective help if you show complete code examples (instead of fragments) and specific error messages (instead of “didn’t work”).
wolfiton
Thanks @al2o3cr for the reply. even though it is hard to understand what i wrote, the author uses the following test pattern.
Also my intent wasn’t to provide just pieces of code. I just found the authors github with the full code and trying to grasp how this test satisfies his requirements for the exercise in the book:
.Exercise requirements:
wolfiton
I have access form a plug to the
current_customerThis exercise is created using TDD so I was following the book’s way of building this. First write the test then the acceptance test and then write the functionality to make it pass.
Full github code here GitHub - shankardevy/mango at chapter8 · GitHub
al2o3cr
Looking at the commit history for that repo, I don’t see any code for this particular exercise - the “My Orders” link doesn’t appear, for instance. There also aren’t any tests for controller actions that need an authenticated user, or for context functions that expect a customer…
My reading of the style suggested in that tutorial suggests you’ll want to add a bunch of things:
code in the
CRMcontext to find all orders given a customer, and a particular order given an ID and a customertests for the new
CRMfunctions. If there were tests forCRM.get_customer_ticket!, I’d recommend that you follow those - but the generated tests were deleted without replacement.a controller that handles showing an index of the user’s orders and individual ones, based on
conn.assigns.current_customer. It will look a lot likeTicketController.an acceptance test that interacts with those controller actions. Again, there aren’t any examples in that repo of this kind of test. You’ll need to dig into the Hound docs to figure out how to set up the session correctly with
customer_id, or simulate going through the login flow by hand.wolfiton
Thanks i will read programming phoenix 1.4 hopefully, after that i can come back and complete the rest of the book and add tests as they should be.