123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- test("null/undefined object", () => {
- [null, undefined].forEach(value => {
- let foo = value;
- expect(() => {
- foo.bar;
- }).toThrowWithMessage(TypeError, `Cannot access property "bar" on ${value} object "foo"`);
- expect(() => {
- foo.bar = 1;
- }).toThrowWithMessage(TypeError, `Cannot access property "bar" on ${value} object "foo"`);
- expect(() => {
- foo[0];
- }).toThrowWithMessage(TypeError, `Cannot access property "0" on ${value} object "foo"`);
- expect(() => {
- foo[0] = 1;
- }).toThrowWithMessage(TypeError, `Cannot access property "0" on ${value} object "foo"`);
- });
- });
- test("null/undefined object key", () => {
- [null, undefined].forEach(value => {
- let foo = { bar: value };
- expect(() => {
- foo.bar.baz;
- }).toThrowWithMessage(
- TypeError,
- `Cannot access property "baz" on ${value} object "foo.bar"`
- );
- expect(() => {
- foo.bar.baz = 1;
- }).toThrowWithMessage(
- TypeError,
- `Cannot access property "baz" on ${value} object "foo.bar"`
- );
- expect(() => {
- foo["bar"].baz;
- }).toThrowWithMessage(
- TypeError,
- `Cannot access property "baz" on ${value} object "foo['bar']"`
- );
- expect(() => {
- foo["bar"].baz = 1;
- }).toThrowWithMessage(
- TypeError,
- `Cannot access property "baz" on ${value} object "foo['bar']"`
- );
- });
- });
- test("null/undefined array index", () => {
- [null, undefined].forEach(value => {
- let foo = [value];
- let index = 0;
- expect(() => {
- foo[0].bar;
- }).toThrowWithMessage(
- TypeError,
- `Cannot access property "bar" on ${value} object "foo[0]"`
- );
- expect(() => {
- foo[0].bar = 1;
- }).toThrowWithMessage(
- TypeError,
- `Cannot access property "bar" on ${value} object "foo[0]"`
- );
- expect(() => {
- foo[index].bar;
- }).toThrowWithMessage(
- TypeError,
- `Cannot access property "bar" on ${value} object "foo[index]"`
- );
- expect(() => {
- foo[index].bar = 1;
- }).toThrowWithMessage(
- TypeError,
- `Cannot access property "bar" on ${value} object "foo[index]"`
- );
- });
- });
|