Public API for a society manager application

user-ops-spec.js 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. var request = require("request");
  2. var base_url = "http://localhost:3000";
  3. describe("User Operations", function () {
  4. var register_user = function (username) {
  5. return {
  6. url: base_url + "/user/register/",
  7. method: "POST",
  8. json: {
  9. user: username,
  10. password: "foofoo"
  11. }
  12. };
  13. };
  14. var login_user = function (username, pass) {
  15. return {
  16. url: base_url + "/user/auth/",
  17. method: "POST",
  18. json: {
  19. user: username,
  20. password: pass
  21. }
  22. };
  23. };
  24. var user_ops_auth_key = "";
  25. describe("POST /user/register/", function () {
  26. it("can register user", function (done) {
  27. request(register_user("foo123"), function (error, response, body) {
  28. expect(response.statusCode).toBe(200);
  29. expect(body.registered).toBe(1);
  30. if (body["auth-key"]) {
  31. expect(body["auth-key"].length).toBe(60);
  32. }
  33. expect(body.error).toBe(0);
  34. done();
  35. });
  36. });
  37. it("cannot register the same user twice", function (done) {
  38. request(register_user("foo123"), function (error, response, body) {
  39. expect(response.statusCode).toBe(200);
  40. expect(body.registered).toBe(0);
  41. expect(body["auth-key"]).toBe(undefined);
  42. expect(body.error).toBe(1);
  43. done();
  44. });
  45. });
  46. it("cannot accept malformed requests", function (done) {
  47. request({
  48. url: base_url + "/user/register/",
  49. method: "POST",
  50. json: {
  51. usr: "foo123",
  52. password: "foofoo"
  53. }
  54. }, function (error, response, body) {
  55. expect(response.statusCode).toBe(200);
  56. expect(body.registered).toBe(0);
  57. expect(body["auth-key"]).toBe(undefined);
  58. expect(body.error).toBe(2);
  59. done();
  60. });
  61. });
  62. }); //end POST /user/register/
  63. describe("POST /user/auth/", function () {
  64. it("can login as an existing user", function (done) {
  65. request(login_user("foo123", "foofoo"), function (error, response, body) {
  66. expect(response.statusCode).toBe(200);
  67. expect(body.logged_in).toBe(1);
  68. expect(body["auth-key"].length).toBe(60);
  69. expect(body.error).toBe(0);
  70. done();
  71. });
  72. });
  73. it("cannot login with an incorrect password", function (done) {
  74. request(login_user("foo123", "foofo"), function (error, response, body) {
  75. expect(response.statusCode).toBe(200);
  76. expect(body.logged_in).toBe(0);
  77. expect(body["auth-key"]).toBe(undefined);
  78. expect(body.error).toBe(1);
  79. done();
  80. });
  81. });
  82. it("cannot login with an incorrect username", function (done) {
  83. request(login_user("foo1233", "foofoo"), function (error, response, body) {
  84. expect(response.statusCode).toBe(200);
  85. expect(body.logged_in).toBe(0);
  86. expect(body["auth-key"]).toBe(undefined);
  87. expect(body.error).toBe(1);
  88. done();
  89. });
  90. });
  91. it("cannot accept malformed requests", function (done) {
  92. request({
  93. url: base_url + "/user/auth/",
  94. method: "POST",
  95. json: {
  96. usr: "foo123",
  97. password: "foofoo"
  98. }
  99. }, function (error, response, body) {
  100. expect(response.statusCode).toBe(200);
  101. expect(body.logged_in).toBe(0);
  102. expect(body["auth-key"]).toBe(undefined);
  103. expect(body.error).toBe(2);
  104. done();
  105. });
  106. });
  107. }); //end POST /user/auth/
  108. });