summaryrefslogtreecommitdiff
path: root/mocha_test/slice.js
diff options
context:
space:
mode:
Diffstat (limited to 'mocha_test/slice.js')
-rw-r--r--mocha_test/slice.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/mocha_test/slice.js b/mocha_test/slice.js
new file mode 100644
index 0000000..7020526
--- /dev/null
+++ b/mocha_test/slice.js
@@ -0,0 +1,32 @@
+var slice = require('../lib/internal/slice').default;
+var expect = require('chai').expect;
+
+describe('slice', function() {
+ it('should slice arrays', function() {
+ var arr = ['foo', 'bar', 'baz'];
+ var result = slice(arr, 2);
+ expect(arr).to.eql(['foo', 'bar', 'baz']);
+ expect(result).to.eql(['baz']);
+ });
+
+ it('should handle ArrayLike objects', function() {
+ var args = {0: 'foo', 1: 'bar', 2: 'baz', length: 3};
+ var result = slice(args, 1);
+ expect(result).to.be.an('array');
+ expect(result).to.eql(['bar', 'baz']);
+ });
+
+ it('should handle arguments', function() {
+ var foo = function() {
+ return slice(arguments, 1);
+ };
+ var result = foo.apply(null, ['foo', 'bar', 'baz']);
+ expect(result).to.be.an('array');
+ expect(result).to.eql(['bar', 'baz']);
+ });
+
+ it('should return an empty array on an invalid start', function() {
+ var result = slice(['foo', 'bar', 'baz'], 10);
+ expect(result).to.be.an('array').that.is.empty;
+ });
+});