Skip to content

Commit 85a8979

Browse files
committed
src/__tests__/auto.test.ts: Add test for #173
1 parent 3c74cb5 commit 85a8979

File tree

1 file changed

+28
-6
lines changed

1 file changed

+28
-6
lines changed

src/__tests__/auto.test.ts

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { expect } from 'vitest';
1+
import { expect } from "vitest";
22

33
import { whatsabi } from "../index";
44
import { autoload } from "../auto";
@@ -9,12 +9,12 @@ const TIMEOUT = 15000;
99

1010
test('autoload throws typed error', async () => {
1111
// @ts-expect-error: Expected 2 arguments, but got 1
12-
await expect(autoload("0xf00")).rejects.toThrow(/config is undefined/);
12+
await expect(autoload("0xf00")).rejects.toThrow(new RegExp("config is undefined"));
1313

1414
const fakeProvider = {
1515
request: () => { },
16-
}
17-
await expect(autoload("abc.eth", { provider: fakeProvider })).rejects.toThrow(/Failed to resolve ENS/);
16+
};
17+
await expect(autoload("abc.eth", { provider: fakeProvider })).rejects.toThrow(new RegExp("Failed to resolve ENS"));
1818
});
1919

2020
test('autoload sets hasCode to false if code is empty', async () => {
@@ -113,7 +113,7 @@ online_test('autoload loadContractResult verified etherscan', async ({ provider,
113113
expect(result.contractResult?.name).toBe("TransparentUpgradeableProxy");
114114
expect(result.contractResult?.compilerVersion).toBe("v0.8.15+commit.e14f2714");
115115
expect(result.contractResult?.loaderResult?.Proxy).toBe("1");
116-
expect(result.contractResult?.loaderResult?.Implementation).toMatch(/^0x[0-9a-f]{40}$/);
116+
expect(result.contractResult?.loaderResult?.Implementation).toMatch(new RegExp("^0x[0-9a-f]{40}$"));
117117
});
118118

119119
cached_test('autoload isFactory', async ({ provider, env, withCache }) => {
@@ -126,9 +126,31 @@ cached_test('autoload isFactory', async ({ provider, env, withCache }) => {
126126
},
127127
)
128128
const result = await autoload(address, {
129-
provider: provider,
129+
provider: whatsabi.providers.WithCachedCode(provider, {
130+
[address]: code,
131+
}),
130132
...whatsabi.loaders.defaultsWithEnv(env),
131133
});
132134
expect(result.isFactory).toBeTruthy();
133135
});
134136

137+
cached_test('autoload ambiguous proxy', async ({ provider, env, withCache }) => {
138+
// Issue #173
139+
const address = "0xe1164a7a364929c3ba3da9671c8003dd71975d2d";
140+
141+
const code = await withCache(
142+
`${address}_code`,
143+
async () => {
144+
return await provider.getCode(address)
145+
},
146+
)
147+
const result = await autoload(address, {
148+
provider: whatsabi.providers.WithCachedCode(provider, {
149+
[address]: code,
150+
}),
151+
...whatsabi.loaders.defaultsWithEnv(env),
152+
});
153+
expect(result.proxies.length).toBe(1);
154+
expect(result.followProxies).toBeFalsy();
155+
});
156+

0 commit comments

Comments
 (0)