helpers.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with this
  4. * work for additional information regarding copyright ownership. The ASF
  5. * licenses this file to you under the Apache License, Version 2.0 (the
  6. * "License"); you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  13. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  14. * License for the specific language governing permissions and limitations under
  15. * the License.
  16. */
  17. module.exports = {
  18. /**
  19. * Examples:
  20. * <code>
  21. * var actual = [{a:1, b: [1, 2], c: 3}],
  22. * expected = [{a: 1, b: [1, 2]}];
  23. * nestedExpect(expected, actual); // valid
  24. * </code>
  25. *
  26. * <code>
  27. * var actual = [{a:1, b: [1, 2]}],
  28. * expected = [{a: 1, b: [1, 2], c: 3}];
  29. * nestedExpect(expected, actual); // invalid valid (actual[0] doesn't contains key 'c)
  30. * </code>
  31. * @param {object[]} expected
  32. * @param {object[]} actual
  33. * @method nestedExpect
  34. */
  35. nestedExpect: function (expected, actual) {
  36. expected.forEach(function (group, i) {
  37. Em.keys(group).forEach(function (key) {
  38. if ('array' === Em.typeOf(actual[i][key])) {
  39. expect(group[key]).to.eql(actual[i][key].toArray());
  40. }
  41. else {
  42. expect(group[key]).to.equal(actual[i][key]);
  43. }
  44. });
  45. });
  46. }
  47. };