From 56c2d7ae3f42bf0839426a3b3d6a346b56f54694 Mon Sep 17 00:00:00 2001 From: Glenn Jackman Date: Mon, 13 Jul 2026 07:37:55 -0400 Subject: [PATCH] fix generator bug: wrong indentation --- .../practice/rest-api/.meta/generator.tmpl | 15 +- .../practice/rest-api/rest_api_spec.moon | 186 +++++++++--------- 2 files changed, 100 insertions(+), 101 deletions(-) diff --git a/exercises/practice/rest-api/.meta/generator.tmpl b/exercises/practice/rest-api/.meta/generator.tmpl index 37a4e45..de8fbba 100644 --- a/exercises/practice/rest-api/.meta/generator.tmpl +++ b/exercises/practice/rest-api/.meta/generator.tmpl @@ -1,19 +1,18 @@ <%= slug.pascal %> = require <%- h.quote(slug.snake) %> assert\set_parameter "TableFormatLevel", 4 -<% local call, payload -%> describe <%- h.quote(slug.kebab .. ':') %>, -> <% for i, group in ipairs(data.cases) do -%> describe <%- h.quote(group.description .. ':') %>, -> <% for j, case in ipairs(group.cases) do -%> - <%= test_cmd(i == 1 and j == 1) %> <%- h.quote(case.description) %>, -> - database = <%- h.table_dump(case.input.database, 2, {sort_keys = true}) %> - api = RestApi database - <%- case.input.payload and "payload = " .. h.table_dump(case.input.payload, 2, {sort_keys = true}) or '' %> - result = api\<%- case.property:upper() %> <%- h.quote(case.input.url) %><%= case.input.payload and ", payload" or "" %> - expected = <%- h.table_dump(case.expected, 2, {sort_keys = true}) %> - assert.are.same expected, result + <%= test_cmd(i == 1 and j == 1) %> <%- h.quote(case.description) %>, -> + database = <%- h.table_dump(case.input.database, 2, {sort_keys = true}) %> + api = RestApi database + <%- case.input.payload and "payload = " .. h.table_dump(case.input.payload, 2, {sort_keys = true}) or '' %> + result = api\<%- case.property:upper() %> <%- h.quote(case.input.url) %><%= case.input.payload and ", payload" or "" %> + expected = <%- h.table_dump(case.expected, 2, {sort_keys = true}) %> + assert.are.same expected, result <% end -%> <% end -%> diff --git a/exercises/practice/rest-api/rest_api_spec.moon b/exercises/practice/rest-api/rest_api_spec.moon index 366844f..0cdf13d 100644 --- a/exercises/practice/rest-api/rest_api_spec.moon +++ b/exercises/practice/rest-api/rest_api_spec.moon @@ -4,331 +4,331 @@ assert\set_parameter "TableFormatLevel", 4 describe 'rest-api:', -> describe 'user management:', -> - it 'no users', -> - database = { + it 'no users', -> + database = { users: {} } - api = RestApi database - - result = api\GET '/users' - expected = { + api = RestApi database + + result = api\GET '/users' + expected = { users: {} } - assert.are.same expected, result + assert.are.same expected, result - pending 'add user', -> - database = { + pending 'add user', -> + database = { users: {} } - api = RestApi database - payload = { + api = RestApi database + payload = { user: 'Adam' } - result = api\POST '/add', payload - expected = { + result = api\POST '/add', payload + expected = { balance: 0.0 name: 'Adam' owed_by: {} owes: {} } - assert.are.same expected, result + assert.are.same expected, result - pending 'get single user', -> - database = { + pending 'get single user', -> + database = { users: {{ name: 'Adam' - owed_by: {} balance: 0.0 + owed_by: {} owes: {} }, { name: 'Bob' - owed_by: {} balance: 0.0 + owed_by: {} owes: {} }} } - api = RestApi database - payload = { + api = RestApi database + payload = { users: {'Bob'} } - result = api\GET '/users', payload - expected = { + result = api\GET '/users', payload + expected = { users: {{ name: 'Bob' - owed_by: {} balance: 0.0 + owed_by: {} owes: {} }} } - assert.are.same expected, result + assert.are.same expected, result describe 'iou:', -> - pending 'both users have 0 balance', -> - database = { + pending 'both users have 0 balance', -> + database = { users: {{ name: 'Adam' - owed_by: {} balance: 0.0 + owed_by: {} owes: {} }, { name: 'Bob' - owed_by: {} balance: 0.0 + owed_by: {} owes: {} }} } - api = RestApi database - payload = { + api = RestApi database + payload = { amount: 3.0 borrower: 'Bob' lender: 'Adam' } - result = api\POST '/iou', payload - expected = { + result = api\POST '/iou', payload + expected = { users: {{ name: 'Adam' + balance: 3.0 owed_by: { Bob: 3.0 } - balance: 3.0 owes: {} }, { name: 'Bob' - owed_by: {} balance: -3.0 + owed_by: {} owes: { Adam: 3.0 } }} } - assert.are.same expected, result + assert.are.same expected, result - pending 'borrower has negative balance', -> - database = { + pending 'borrower has negative balance', -> + database = { users: {{ name: 'Adam' - owed_by: {} balance: 0.0 + owed_by: {} owes: {} }, { name: 'Bob' - owed_by: {} balance: -3.0 + owed_by: {} owes: { Chuck: 3.0 } }, { name: 'Chuck' + balance: 3.0 owed_by: { Bob: 3.0 } - balance: 3.0 owes: {} }} } - api = RestApi database - payload = { + api = RestApi database + payload = { amount: 3.0 borrower: 'Bob' lender: 'Adam' } - result = api\POST '/iou', payload - expected = { + result = api\POST '/iou', payload + expected = { users: {{ name: 'Adam' + balance: 3.0 owed_by: { Bob: 3.0 } - balance: 3.0 owes: {} }, { name: 'Bob' - owed_by: {} balance: -6.0 + owed_by: {} owes: { - Adam: 3.0 Chuck: 3.0 + Adam: 3.0 } }} } - assert.are.same expected, result + assert.are.same expected, result - pending 'lender has negative balance', -> - database = { + pending 'lender has negative balance', -> + database = { users: {{ name: 'Adam' - owed_by: {} balance: 0.0 + owed_by: {} owes: {} }, { name: 'Bob' - owed_by: {} balance: -3.0 + owed_by: {} owes: { Chuck: 3.0 } }, { name: 'Chuck' + balance: 3.0 owed_by: { Bob: 3.0 } - balance: 3.0 owes: {} }} } - api = RestApi database - payload = { + api = RestApi database + payload = { amount: 3.0 borrower: 'Adam' lender: 'Bob' } - result = api\POST '/iou', payload - expected = { + result = api\POST '/iou', payload + expected = { users: {{ name: 'Adam' - owed_by: {} balance: -3.0 + owed_by: {} owes: { Bob: 3.0 } }, { name: 'Bob' + balance: 0.0 owed_by: { Adam: 3.0 } - balance: 0.0 owes: { Chuck: 3.0 } }} } - assert.are.same expected, result + assert.are.same expected, result - pending 'lender owes borrower', -> - database = { + pending 'lender owes borrower', -> + database = { users: {{ name: 'Adam' - owed_by: {} balance: -3.0 + owed_by: {} owes: { Bob: 3.0 } }, { name: 'Bob' + balance: 3.0 owed_by: { Adam: 3.0 } - balance: 3.0 owes: {} }} } - api = RestApi database - payload = { + api = RestApi database + payload = { amount: 2.0 borrower: 'Bob' lender: 'Adam' } - result = api\POST '/iou', payload - expected = { + result = api\POST '/iou', payload + expected = { users: {{ name: 'Adam' - owed_by: {} balance: -1.0 + owed_by: {} owes: { Bob: 1.0 } }, { name: 'Bob' + balance: 1.0 owed_by: { Adam: 1.0 } - balance: 1.0 owes: {} }} } - assert.are.same expected, result + assert.are.same expected, result - pending 'lender owes borrower less than new loan', -> - database = { + pending 'lender owes borrower less than new loan', -> + database = { users: {{ name: 'Adam' - owed_by: {} balance: -3.0 + owed_by: {} owes: { Bob: 3.0 } }, { name: 'Bob' + balance: 3.0 owed_by: { Adam: 3.0 } - balance: 3.0 owes: {} }} } - api = RestApi database - payload = { + api = RestApi database + payload = { amount: 4.0 borrower: 'Bob' lender: 'Adam' } - result = api\POST '/iou', payload - expected = { + result = api\POST '/iou', payload + expected = { users: {{ name: 'Adam' + balance: 1.0 owed_by: { Bob: 1.0 } - balance: 1.0 owes: {} }, { name: 'Bob' - owed_by: {} balance: -1.0 + owed_by: {} owes: { Adam: 1.0 } }} } - assert.are.same expected, result + assert.are.same expected, result - pending 'lender owes borrower same as new loan', -> - database = { + pending 'lender owes borrower same as new loan', -> + database = { users: {{ name: 'Adam' - owed_by: {} balance: -3.0 + owed_by: {} owes: { Bob: 3.0 } }, { name: 'Bob' + balance: 3.0 owed_by: { Adam: 3.0 } - balance: 3.0 owes: {} }} } - api = RestApi database - payload = { + api = RestApi database + payload = { amount: 3.0 borrower: 'Bob' lender: 'Adam' } - result = api\POST '/iou', payload - expected = { + result = api\POST '/iou', payload + expected = { users: {{ name: 'Adam' - owed_by: {} balance: 0.0 + owed_by: {} owes: {} }, { name: 'Bob' - owed_by: {} balance: 0.0 + owed_by: {} owes: {} }} } - assert.are.same expected, result + assert.are.same expected, result