Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,35 @@

import { describe, expect, it } from "vitest";

import { DEVNET_OWNER, DEVNET_USER } from "@ensnode/ensnode-sdk/internal";
import { accounts } from "@ensnode/datasources/devnet";

const BASE_URL = process.env.ENSNODE_URL!;

describe("GET /api/resolve/primary-name/:address/:chainId", () => {
it.each([
{
description:
"resolves primary name for owner address on chain 1 (no primary name set in devnet)",
address: DEVNET_OWNER,
description: "resolves primary name for owner address on chain 1",
address: accounts.owner.address,
chainId: "1",
query: "",
expectedStatus: 200,
expectedBody: { name: null, accelerationRequested: false, accelerationAttempted: false },
expectedBody: {
name: "test.eth",
accelerationRequested: false,
accelerationAttempted: false,
},
},
{
description:
"resolves primary name for user address on chain 1 (no primary name set in devnet)",
address: DEVNET_USER,
description: "returns null for user without a primary name",
address: accounts.user.address,
chainId: "1",
query: "",
expectedStatus: 200,
expectedBody: { name: null, accelerationRequested: false, accelerationAttempted: false },
},
{
description: "owner address with accelerate=true returns accelerationRequested: true",
address: DEVNET_OWNER,
address: accounts.owner.address,
chainId: "1",
query: "accelerate=true",
expectedStatus: 200,
Expand All @@ -58,7 +60,7 @@ describe("GET /api/resolve/primary-name/:address/:chainId", () => {
},
{
description: "returns 400 for non-numeric chainId",
address: DEVNET_OWNER,
address: accounts.owner.address,
chainId: "notachainid",
query: "",
expectedStatus: 400,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,30 @@

import { describe, expect, it } from "vitest";

import { DEVNET_OWNER } from "@ensnode/ensnode-sdk/internal";
import { accounts } from "@ensnode/datasources/devnet";

const BASE_URL = process.env.ENSNODE_URL!;

describe("GET /api/resolve/primary-names/:address", () => {
it.each([
{
description:
"resolves primary names for owner address on chain 1 (no primary name set in devnet)",
address: DEVNET_OWNER,
description: "resolves primary names for owner address on chain 1",
address: accounts.owner.address,
query: "chainIds=1",
expectedStatus: 200,
expectedBody: {
names: { "1": null },
names: { "1": "test.eth" },
accelerationRequested: false,
accelerationAttempted: false,
},
},
{
description: "resolves all primary names",
address: DEVNET_OWNER,
address: accounts.owner.address,
query: "",
expectedStatus: 200,
expectedBody: {
names: { "1": null },
names: { "1": "test.eth" },
accelerationRequested: false,
accelerationAttempted: false,
},
Expand All @@ -54,7 +53,7 @@ describe("GET /api/resolve/primary-names/:address", () => {
},
{
description: "returns 400 when chainIds contains the default chain id (0)",
address: DEVNET_OWNER,
address: accounts.owner.address,
query: "chainIds=0",
expectedStatus: 400,
expectedBody: {
Expand All @@ -76,7 +75,7 @@ describe("GET /api/resolve/primary-names/:address", () => {
},
{
description: "returns 400 when chainIds contains duplicate chain ids",
address: DEVNET_OWNER,
address: accounts.owner.address,
query: "chainIds=1,1",
expectedStatus: 400,
expectedBody: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import { describe, expect, it } from "vitest";

import { DEVNET_OWNER } from "@ensnode/ensnode-sdk/internal";
import { accounts, addresses, fixtures } from "@ensnode/datasources/devnet";

const BASE_URL = process.env.ENSNODE_URL!;

Expand All @@ -18,7 +18,7 @@ describe("GET /api/resolve/records/:name", () => {
query: "addresses=60",
expectedStatus: 200,
expectedBody: {
records: { addresses: { 60: DEVNET_OWNER } },
records: { addresses: { 60: accounts.owner.address } },
accelerationRequested: false,
accelerationAttempted: false,
},
Expand All @@ -30,7 +30,7 @@ describe("GET /api/resolve/records/:name", () => {
query: "addresses=60",
expectedStatus: 200,
expectedBody: {
records: { addresses: { 60: DEVNET_OWNER } },
records: { addresses: { 60: accounts.owner.address } },
accelerationRequested: false,
accelerationAttempted: false,
},
Expand Down Expand Up @@ -65,7 +65,7 @@ describe("GET /api/resolve/records/:name", () => {
expectedStatus: 200,
expectedBody: {
records: {
addresses: { 60: DEVNET_OWNER },
addresses: { 60: accounts.owner.address },
texts: { description: "example.eth" },
},
accelerationRequested: false,
Expand All @@ -90,7 +90,7 @@ describe("GET /api/resolve/records/:name", () => {
query: "addresses=60",
expectedStatus: 200,
expectedBody: {
records: { addresses: { 60: DEVNET_OWNER } },
records: { addresses: { 60: accounts.owner.address } },
accelerationRequested: false,
accelerationAttempted: false,
},
Expand All @@ -112,7 +112,7 @@ describe("GET /api/resolve/records/:name", () => {
query: "addresses=60",
expectedStatus: 200,
expectedBody: {
records: { addresses: { 60: DEVNET_OWNER } },
records: { addresses: { 60: accounts.owner.address } },
accelerationRequested: false,
accelerationAttempted: false,
},
Expand All @@ -124,18 +124,109 @@ describe("GET /api/resolve/records/:name", () => {
query: "addresses=60",
expectedStatus: 200,
expectedBody: {
records: { addresses: { 60: DEVNET_OWNER } },
records: { addresses: { 60: accounts.owner.address } },
accelerationRequested: false,
accelerationAttempted: false,
},
},
// -- Text records (seeded in devnet) --
{
description: "resolves avatar text record for test.eth",
name: "test.eth",
query: "texts=avatar",
expectedStatus: 200,
expectedBody: {
records: { texts: { avatar: "https://example.com/avatar.png" } },
accelerationRequested: false,
accelerationAttempted: false,
},
},
{
description: "returns null for unset text record",
name: "test.eth",
query: "texts=nonexistent.key",
expectedStatus: 200,
expectedBody: {
records: { texts: { "nonexistent.key": null } },
accelerationRequested: false,
accelerationAttempted: false,
},
},
// -- Multi-coin addresses (seeded in devnet) --
{
description: "resolves multiple coin types at once for test.eth",
name: "test.eth",
query: "addresses=60,0,2,777777",
expectedStatus: 200,
expectedBody: {
records: {
addresses: {
60: accounts.owner.address,
0: fixtures.bitcoinAddress,
2: fixtures.litecoinAddress,
777777: null,
},
},
accelerationRequested: false,
accelerationAttempted: false,
},
},
// -- Combined records --
{
description: "resolves every supported record type for test.eth",
name: "test.eth",
query: [
"name=true",
"addresses=60,0,2",
"texts=avatar,description,url,email,com.twitter,com.github",
"contenthash=true",
"pubkey=true",
"version=true",
"abi=1",
`interfaces=${fixtures.fourBytesInterface}`,
].join("&"),
expectedStatus: 200,
expectedBody: {
records: {
addresses: {
60: accounts.owner.address,
0: fixtures.bitcoinAddress,
2: fixtures.litecoinAddress,
},
texts: {
avatar: "https://example.com/avatar.png",
description: "test.eth",
url: "https://ens.domains",
email: "test@ens.domains",
"com.twitter": "ensdomains",
"com.github": "ensdomains",
},
contenthash: fixtures.contenthash,
pubkey: {
x: fixtures.publicKeyX,
y: fixtures.publicKeyY,
},
version: expect.any(String),
abi: {
contentType: "1",
data: fixtures.abiBytes,
},
interfaces: {
[fixtures.fourBytesInterface]: addresses.one,
},
},
accelerationRequested: false,
accelerationAttempted: false,
},
},
// -- Acceleration --
{
description: "test.eth with accelerate=true returns accelerationRequested: true",
name: "test.eth",
query: "addresses=60&accelerate=true",
expectedStatus: 200,
expectedBody: {
records: { addresses: { 60: DEVNET_OWNER } },
records: { addresses: { 60: accounts.owner.address } },
accelerationRequested: true,
accelerationAttempted: false,
},
Expand Down
Loading
Loading