JSSpecToJasmine.js 645 B

123456789101112131415161718192021222324252627282930313233343536
  1. describe = (function(original){
  2. var each = 'before each',
  3. all = 'before all',
  4. after = 'after all';
  5. return function(name, object){
  6. if (object instanceof Function){
  7. original(name, object);
  8. return;
  9. }
  10. original(name, function(){
  11. var beforeAll = object[all],
  12. bfEach = object[each],
  13. aAll = object[after];
  14. beforeEach(function(){
  15. if (beforeAll){
  16. beforeAll();
  17. beforeAll = null;
  18. }
  19. if (bfEach) bfEach();
  20. });
  21. delete object[all];
  22. delete object[each];
  23. delete object[after];
  24. for (var key in object)
  25. it(key, object[key]);
  26. if (aAll) it('cleans up', aAll);
  27. });
  28. };
  29. })(describe);