countBasedMessage.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. var helpers = App.TestAliases.helpers;
  19. /**
  20. *
  21. * @param {Em.Object} context
  22. * @param {string} propertyName
  23. * @param {string} dependentKey
  24. * @param {string} zeroMessage
  25. * @param {string} oneMessage
  26. * @param {string} manyMessage
  27. */
  28. App.TestAliases.testAsComputedCountBasedMessage = function (context, propertyName, dependentKey, zeroMessage, oneMessage, manyMessage) {
  29. describe('#' + propertyName + ' as Em.computed.countBasedMessage', function () {
  30. afterEach(function () {
  31. helpers.smartRestoreGet(context);
  32. });
  33. it('has valid dependent keys', function () {
  34. expect(Em.meta(context).descs[propertyName]._dependentKeys).to.eql([dependentKey]);
  35. });
  36. it('should be equal to `zeroMessage` if ' + JSON.stringify(dependentKey) + ' is 0', function () {
  37. helpers.smartStubGet(context, dependentKey, 0)
  38. .propertyDidChange(context, propertyName);
  39. var value = helpers.smartGet(context, propertyName);
  40. expect(value).to.equal(zeroMessage);
  41. });
  42. it('should be equal to `oneMessage` if ' + JSON.stringify(dependentKey) + ' is 1', function () {
  43. helpers.smartStubGet(context, dependentKey, 1)
  44. .propertyDidChange(context, propertyName);
  45. var value = helpers.smartGet(context, propertyName);
  46. expect(value).to.equal(oneMessage);
  47. });
  48. it('should be equal to `manyMessage` if ' + JSON.stringify(dependentKey) + ' is 1+', function () {
  49. helpers.smartStubGet(context, dependentKey, 2)
  50. .propertyDidChange(context, propertyName);
  51. var value = helpers.smartGet(context, propertyName);
  52. expect(value).to.equal(manyMessage);
  53. });
  54. });
  55. };