Skip to content

Commit

Permalink
66% of service tests implemented
Browse files Browse the repository at this point in the history
Signed-off-by: Danilo Romano <[email protected]>
  • Loading branch information
Danilo Romano committed Mar 16, 2022
1 parent af96205 commit 193b930
Show file tree
Hide file tree
Showing 29 changed files with 2,630 additions and 34 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ Marque esse projeto com uma estrela 🌟
- Web API
- [ ] Deve atingir 100% de cobertura de código em testes
- [ ] Deve ter testes de integração validando todas as rotas da API
- [ ] Deve entregar arquivos estáticos como Node.js Stream
- [x] Deve entregar arquivos estáticos como Node.js Stream
- [ ] Deve entregar arquivos de música como Node.js Stream
- [ ] Dado um usuário desconectado, não deve quebrar a API
- [ ] Mesmo que vários comandos sejam desparados ao mesmo tempo, não deve quebrar a API
- [ ] Caso aconteça um erro inesperado, a API deve continuar funcionando
- [x] Caso aconteça um erro inesperado, a API deve continuar funcionando
- [ ] O projeto precisa ser executado em ambientes Linux, Mac e Windows

- Web App
Expand Down
86 changes: 86 additions & 0 deletions coverage/clover.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1647452090488" clover="3.2.0">
<project timestamp="1647452090489" name="All files">
<metrics statements="56" coveredstatements="43" conditionals="17" coveredconditionals="16" methods="17" coveredmethods="9" elements="90" coveredelements="68" complexity="0" loc="56" ncloc="56" packages="2" files="6" classes="6"/>
<package name="server">
<metrics statements="44" coveredstatements="36" conditionals="16" coveredconditionals="16" methods="9" coveredmethods="5"/>
<file name="config.ts" path="/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/config.ts">
<metrics statements="4" coveredstatements="4" conditionals="2" coveredconditionals="2" methods="0" coveredmethods="0"/>
<line num="4" count="1" type="stmt"/>
<line num="5" count="1" type="stmt"/>
<line num="6" count="1" type="stmt"/>
<line num="7" count="1" type="stmt"/>
</file>
<file name="controller.ts" path="/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/controller.ts">
<metrics statements="2" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="2" coveredmethods="1"/>
<line num="7" count="1" type="stmt"/>
<line num="11" count="0" type="stmt"/>
</file>
<file name="routes.ts" path="/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/routes.ts">
<metrics statements="29" coveredstatements="29" conditionals="14" coveredconditionals="14" methods="4" coveredmethods="4"/>
<line num="6" count="1" type="stmt"/>
<line num="8" count="1" type="stmt"/>
<line num="10" count="8" type="stmt"/>
<line num="12" count="8" type="cond" truecount="3" falsecount="0"/>
<line num="13" count="1" type="stmt"/>
<line num="17" count="1" type="stmt"/>
<line num="20" count="7" type="cond" truecount="3" falsecount="0"/>
<line num="21" count="1" type="stmt"/>
<line num="23" count="1" type="stmt"/>
<line num="26" count="6" type="cond" truecount="3" falsecount="0"/>
<line num="27" count="1" type="stmt"/>
<line num="29" count="1" type="stmt"/>
<line num="32" count="5" type="cond" truecount="3" falsecount="0"/>
<line num="33" count="4" type="stmt"/>
<line num="34" count="2" type="stmt"/>
<line num="36" count="2" type="cond" truecount="1" falsecount="0"/>
<line num="37" count="1" type="stmt"/>
<line num="42" count="2" type="stmt"/>
<line num="45" count="1" type="stmt"/>
<line num="46" count="1" type="stmt"/>
<line num="50" count="2" type="cond" truecount="1" falsecount="0"/>
<line num="51" count="1" type="stmt"/>
<line num="52" count="1" type="stmt"/>
<line num="53" count="1" type="stmt"/>
<line num="56" count="1" type="stmt"/>
<line num="57" count="1" type="stmt"/>
<line num="58" count="1" type="stmt"/>
<line num="62" count="8" type="stmt"/>
<line num="63" count="2" type="stmt"/>
</file>
<file name="service.ts" path="/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/service.ts">
<metrics statements="8" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="3" coveredmethods="0"/>
<line num="6" count="1" type="stmt"/>
<line num="9" count="0" type="stmt"/>
<line num="13" count="0" type="stmt"/>
<line num="15" count="0" type="stmt"/>
<line num="16" count="0" type="stmt"/>
<line num="18" count="0" type="stmt"/>
<line num="25" count="0" type="stmt"/>
<line num="26" count="0" type="stmt"/>
</file>
<file name="util.ts" path="/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/util.ts">
<metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
<line num="3" count="1" type="stmt"/>
</file>
</package>
<package name="tests.unit._util">
<metrics statements="12" coveredstatements="7" conditionals="1" coveredconditionals="0" methods="8" coveredmethods="4"/>
<file name="testUtil.ts" path="/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/tests/unit/_util/testUtil.ts">
<metrics statements="12" coveredstatements="7" conditionals="1" coveredconditionals="0" methods="8" coveredmethods="4"/>
<line num="7" count="12" type="stmt"/>
<line num="9" count="0" type="stmt"/>
<line num="10" count="0" type="stmt"/>
<line num="12" count="0" type="stmt"/>
<line num="18" count="8" type="stmt"/>
<line num="20" count="0" type="stmt"/>
<line num="22" count="0" type="stmt"/>
<line num="28" count="8" type="stmt"/>
<line num="29" count="8" type="stmt"/>
<line num="31" count="8" type="stmt"/>
<line num="44" count="8" type="stmt"/>
<line num="45" count="8" type="stmt"/>
</file>
</package>
</project>
</coverage>
7 changes: 7 additions & 0 deletions coverage/coverage-final.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/config.ts": {"path":"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/config.ts","statementMap":{"0":{"start":{"line":4,"column":19},"end":{"line":4,"column":58}},"1":{"start":{"line":5,"column":13},"end":{"line":5,"column":36}},"2":{"start":{"line":6,"column":23},"end":{"line":6,"column":42}},"3":{"start":{"line":7,"column":24},"end":{"line":7,"column":44}}},"fnMap":{},"branchMap":{"0":{"loc":{"start":{"line":10,"column":8},"end":{"line":10,"column":32}},"type":"binary-expr","locations":[{"start":{"line":10,"column":8},"end":{"line":10,"column":24}},{"start":{"line":10,"column":28},"end":{"line":10,"column":32}}]}},"s":{"0":1,"1":1,"2":1,"3":1},"f":{},"b":{"0":[1,1]}}
,"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/controller.ts": {"path":"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/controller.ts","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":7,"column":null}},"1":{"start":{"line":11,"column":4},"end":{"line":11,"column":null}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":null}},"loc":{"start":{"line":6,"column":2},"end":{"line":8,"column":3}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":2},"end":{"line":10,"column":7}},"loc":{"start":{"line":10,"column":38},"end":{"line":12,"column":3}}}},"branchMap":{},"s":{"0":1,"1":0},"f":{"0":1,"1":0},"b":{}}
,"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/routes.ts": {"path":"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/routes.ts","statementMap":{"0":{"start":{"line":6,"column":57},"end":{"line":6,"column":63}},"1":{"start":{"line":8,"column":19},"end":{"line":8,"column":35}},"2":{"start":{"line":10,"column":26},"end":{"line":10,"column":29}},"3":{"start":{"line":12,"column":2},"end":{"line":18,"column":null}},"4":{"start":{"line":13,"column":4},"end":{"line":15,"column":null}},"5":{"start":{"line":17,"column":4},"end":{"line":17,"column":21}},"6":{"start":{"line":20,"column":2},"end":{"line":24,"column":null}},"7":{"start":{"line":21,"column":23},"end":{"line":21,"column":69}},"8":{"start":{"line":23,"column":4},"end":{"line":23,"column":null}},"9":{"start":{"line":26,"column":2},"end":{"line":30,"column":null}},"10":{"start":{"line":27,"column":23},"end":{"line":27,"column":75}},"11":{"start":{"line":29,"column":4},"end":{"line":29,"column":null}},"12":{"start":{"line":32,"column":2},"end":{"line":43,"column":null}},"13":{"start":{"line":33,"column":29},"end":{"line":33,"column":64}},"14":{"start":{"line":34,"column":24},"end":{"line":34,"column":42}},"15":{"start":{"line":36,"column":4},"end":{"line":40,"column":null}},"16":{"start":{"line":37,"column":6},"end":{"line":39,"column":null}},"17":{"start":{"line":42,"column":4},"end":{"line":42,"column":null}},"18":{"start":{"line":45,"column":2},"end":{"line":45,"column":null}},"19":{"start":{"line":46,"column":2},"end":{"line":46,"column":null}},"20":{"start":{"line":50,"column":2},"end":{"line":54,"column":null}},"21":{"start":{"line":51,"column":4},"end":{"line":51,"column":null}},"22":{"start":{"line":52,"column":4},"end":{"line":52,"column":null}},"23":{"start":{"line":53,"column":4},"end":{"line":53,"column":null}},"24":{"start":{"line":56,"column":2},"end":{"line":56,"column":null}},"25":{"start":{"line":57,"column":2},"end":{"line":57,"column":null}},"26":{"start":{"line":58,"column":2},"end":{"line":58,"column":19}},"27":{"start":{"line":62,"column":2},"end":{"line":63,"column":null}},"28":{"start":{"line":63,"column":20},"end":{"line":63,"column":43}}},"fnMap":{"0":{"name":"routes","decl":{"start":{"line":9,"column":15},"end":{"line":9,"column":21}},"loc":{"start":{"line":9,"column":63},"end":{"line":47,"column":1}}},"1":{"name":"handleError","decl":{"start":{"line":49,"column":9},"end":{"line":49,"column":20}},"loc":{"start":{"line":49,"column":54},"end":{"line":59,"column":1}}},"2":{"name":"handler","decl":{"start":{"line":61,"column":16},"end":{"line":61,"column":23}},"loc":{"start":{"line":61,"column":65},"end":{"line":65,"column":1}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":63,"column":11},"end":{"line":63,"column":16}},"loc":{"start":{"line":63,"column":20},"end":{"line":63,"column":43}}}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":2},"end":{"line":18,"column":null}},"type":"if","locations":[{"start":{"line":12,"column":2},"end":{"line":18,"column":null}}]},"1":{"loc":{"start":{"line":12,"column":6},"end":{"line":12,"column":37}},"type":"binary-expr","locations":[{"start":{"line":12,"column":6},"end":{"line":12,"column":22}},{"start":{"line":12,"column":26},"end":{"line":12,"column":37}}]},"2":{"loc":{"start":{"line":20,"column":2},"end":{"line":24,"column":null}},"type":"if","locations":[{"start":{"line":20,"column":2},"end":{"line":24,"column":null}}]},"3":{"loc":{"start":{"line":20,"column":6},"end":{"line":20,"column":41}},"type":"binary-expr","locations":[{"start":{"line":20,"column":6},"end":{"line":20,"column":22}},{"start":{"line":20,"column":26},"end":{"line":20,"column":41}}]},"4":{"loc":{"start":{"line":26,"column":2},"end":{"line":30,"column":null}},"type":"if","locations":[{"start":{"line":26,"column":2},"end":{"line":30,"column":null}}]},"5":{"loc":{"start":{"line":26,"column":6},"end":{"line":26,"column":47}},"type":"binary-expr","locations":[{"start":{"line":26,"column":6},"end":{"line":26,"column":22}},{"start":{"line":26,"column":26},"end":{"line":26,"column":47}}]},"6":{"loc":{"start":{"line":32,"column":2},"end":{"line":43,"column":null}},"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":43,"column":null}}]},"7":{"loc":{"start":{"line":32,"column":6},"end":{"line":32,"column":29}},"type":"binary-expr","locations":[{"start":{"line":32,"column":6},"end":{"line":32,"column":22}},{"start":{"line":32,"column":26},"end":{"line":32,"column":29}}]},"8":{"loc":{"start":{"line":36,"column":4},"end":{"line":40,"column":null}},"type":"if","locations":[{"start":{"line":36,"column":4},"end":{"line":40,"column":null}}]},"9":{"loc":{"start":{"line":50,"column":2},"end":{"line":54,"column":null}},"type":"if","locations":[{"start":{"line":50,"column":2},"end":{"line":54,"column":null}}]}},"s":{"0":1,"1":1,"2":8,"3":8,"4":1,"5":1,"6":7,"7":1,"8":1,"9":6,"10":1,"11":1,"12":5,"13":4,"14":2,"15":2,"16":1,"17":2,"18":1,"19":1,"20":2,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":8,"28":2},"f":{"0":8,"1":2,"2":8,"3":2},"b":{"0":[1],"1":[8,7],"2":[1],"3":[7,6],"4":[1],"5":[6,5],"6":[4],"7":[5,4],"8":[1],"9":[1]}}
,"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/service.ts": {"path":"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/service.ts","statementMap":{"0":{"start":{"line":6,"column":37},"end":{"line":6,"column":43}},"1":{"start":{"line":9,"column":4},"end":{"line":9,"column":null}},"2":{"start":{"line":13,"column":25},"end":{"line":13,"column":52}},"3":{"start":{"line":15,"column":4},"end":{"line":15,"column":null}},"4":{"start":{"line":16,"column":21},"end":{"line":16,"column":42}},"5":{"start":{"line":18,"column":4},"end":{"line":21,"column":null}},"6":{"start":{"line":25,"column":27},"end":{"line":25,"column":55}},"7":{"start":{"line":26,"column":4},"end":{"line":29,"column":null}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":2},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":35},"end":{"line":10,"column":3}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":2},"end":{"line":12,"column":7}},"loc":{"start":{"line":12,"column":32},"end":{"line":22,"column":3}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":24,"column":2},"end":{"line":24,"column":7}},"loc":{"start":{"line":24,"column":34},"end":{"line":30,"column":3}}}},"branchMap":{},"s":{"0":1,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"f":{"0":0,"1":0,"2":0},"b":{}}
,"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/util.ts": {"path":"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/server/util.ts","statementMap":{"0":{"start":{"line":3,"column":22},"end":{"line":11,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{}}
,"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/tests/unit/_util/testUtil.ts": {"path":"/home/Danilo/Projects/erick-wendel/semana-js-expert/6.0/spotify-radio/tests/unit/_util/testUtil.ts","statementMap":{"0":{"start":{"line":7,"column":4},"end":{"line":14,"column":null}},"1":{"start":{"line":9,"column":8},"end":{"line":11,"column":null}},"2":{"start":{"line":10,"column":10},"end":{"line":10,"column":null}},"3":{"start":{"line":12,"column":8},"end":{"line":12,"column":null}},"4":{"start":{"line":18,"column":4},"end":{"line":24,"column":null}},"5":{"start":{"line":20,"column":8},"end":{"line":20,"column":null}},"6":{"start":{"line":22,"column":8},"end":{"line":22,"column":null}},"7":{"start":{"line":28,"column":26},"end":{"line":28,"column":81}},"8":{"start":{"line":29,"column":21},"end":{"line":29,"column":63}},"9":{"start":{"line":31,"column":17},"end":{"line":42,"column":null}},"10":{"start":{"line":44,"column":4},"end":{"line":47,"column":null}},"11":{"start":{"line":45,"column":20},"end":{"line":45,"column":76}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":2},"end":{"line":6,"column":8}},"loc":{"start":{"line":6,"column":46},"end":{"line":15,"column":3}}},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":6},"end":{"line":8,"column":10}},"loc":{"start":{"line":8,"column":10},"end":{"line":13,"column":7}}},"2":{"name":"(anonymous_2)","decl":{"start":{"line":17,"column":2},"end":{"line":17,"column":8}},"loc":{"start":{"line":17,"column":64},"end":{"line":25,"column":3}}},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":41},"end":{"line":17,"column":42}},"loc":{"start":{"line":17,"column":60},"end":{"line":17,"column":64}}},"4":{"name":"(anonymous_4)","decl":{"start":{"line":19,"column":6},"end":{"line":19,"column":11}},"loc":{"start":{"line":19,"column":26},"end":{"line":23,"column":7}}},"5":{"name":"(anonymous_5)","decl":{"start":{"line":27,"column":2},"end":{"line":27,"column":8}},"loc":{"start":{"line":27,"column":28},"end":{"line":48,"column":3}}},"6":{"name":"(anonymous_6)","decl":{"start":{"line":29,"column":53},"end":{"line":29,"column":56}},"loc":{"start":{"line":29,"column":58},"end":{"line":29,"column":62}}},"7":{"name":"(anonymous_7)","decl":{"start":{"line":45,"column":14},"end":{"line":45,"column":17}},"loc":{"start":{"line":45,"column":20},"end":{"line":45,"column":76}}}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":32},"end":{"line":17,"column":64}},"type":"default-arg","locations":[{"start":{"line":17,"column":41},"end":{"line":17,"column":64}}]}},"s":{"0":12,"1":0,"2":0,"3":0,"4":8,"5":0,"6":0,"7":8,"8":8,"9":8,"10":8,"11":8},"f":{"0":12,"1":0,"2":8,"3":0,"4":0,"5":8,"6":0,"7":8},"b":{"0":[0]}}
}
Loading

0 comments on commit 193b930

Please sign in to comment.