ladybird/Libraries/LibJS/Tests/builtins/Array/array-index-from-string.js

49 lines
1.3 KiB
JavaScript

describe("normal behavior", () => {
var arr = [3, 4, 5];
test("basic", () => {
expect(arr["0"]).toBe(3);
expect(arr["1"]).toBe(4);
expect(arr["2"]).toBe(5);
});
test("above length", () => {
expect(arr["3"]).toBeUndefined();
});
});
describe("strings with extra characters", () => {
var arr = [3, 4, 5];
test("whitespace", () => {
expect(arr[" 0"]).toBeUndefined();
expect(arr["0 "]).toBeUndefined();
expect(arr[" 0"]).toBeUndefined();
expect(arr[" 0 "]).toBeUndefined();
expect(arr[" 3 "]).toBeUndefined();
});
test("leading 0", () => {
expect(arr["00"]).toBeUndefined();
expect(arr["01"]).toBeUndefined();
expect(arr["02"]).toBeUndefined();
expect(arr["03"]).toBeUndefined();
});
test("leading +/-", () => {
["+", "-"].forEach(op => {
expect(arr[op + "0"]).toBeUndefined();
expect(arr[op + "1"]).toBeUndefined();
expect(arr[op + "-0"]).toBeUndefined();
expect(arr[op + "+0"]).toBeUndefined();
});
});
test("combined", () => {
expect(arr["+00"]).toBeUndefined();
expect(arr[" +0"]).toBeUndefined();
expect(arr[" +0 "]).toBeUndefined();
expect(arr[" 00 "]).toBeUndefined();
});
});