split query tests into separately runnable files!
This commit is contained in:
parent
d2e530e1a0
commit
56af62fe90
17 changed files with 1810 additions and 1786 deletions
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"editor.formatOnSave": true,
|
||||
"editor.tabSize": 2,
|
||||
"jest.pathToJest": "yarn test"
|
||||
"jest.pathToJest": "yarn test",
|
||||
"jest.autoEnable": false
|
||||
}
|
|
@ -1,717 +0,0 @@
|
|||
const gql = require("graphql-tag");
|
||||
const { ApolloServer } = require("apollo-server");
|
||||
const { createTestClient } = require("apollo-server-testing");
|
||||
|
||||
const connectToDb = require("./db");
|
||||
const actualConnectToDb = jest.requireActual("./db");
|
||||
const { config } = require("./index");
|
||||
|
||||
const { query } = createTestClient(new ApolloServer(config));
|
||||
|
||||
// Spy on db.execute, so we can snapshot the queries we run. This can help us
|
||||
// keep an eye on perf - watch for tests with way too many queries!
|
||||
jest.mock("./db");
|
||||
let queryFn;
|
||||
let db;
|
||||
beforeAll(() => {
|
||||
connectToDb.mockImplementation(async (...args) => {
|
||||
db = await actualConnectToDb(...args);
|
||||
queryFn = jest.spyOn(db, "execute");
|
||||
return db;
|
||||
});
|
||||
});
|
||||
afterEach(() => {
|
||||
queryFn.mockClear();
|
||||
});
|
||||
afterAll(() => {
|
||||
db.end();
|
||||
});
|
||||
|
||||
describe("Item", () => {
|
||||
it("loads metadata", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
items(ids: ["38913", "38911", "38912"]) {
|
||||
id
|
||||
name
|
||||
description
|
||||
thumbnailUrl
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(queryFn.mock.calls).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM items WHERE id IN (?,?,?)",
|
||||
Array [
|
||||
"38913",
|
||||
"38911",
|
||||
"38912",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM item_translations WHERE item_id IN (?,?,?) AND locale = \\"en\\"",
|
||||
Array [
|
||||
"38913",
|
||||
"38911",
|
||||
"38912",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it("loads appearance data", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
items(ids: ["38912", "38911", "37375"]) {
|
||||
id
|
||||
name
|
||||
|
||||
appearanceOn(speciesId: "54", colorId: "75") {
|
||||
layers {
|
||||
id
|
||||
imageUrl(size: SIZE_600)
|
||||
zone {
|
||||
id
|
||||
depth
|
||||
label
|
||||
}
|
||||
}
|
||||
|
||||
restrictedZones {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(queryFn.mock.calls).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM items WHERE id IN (?,?,?)",
|
||||
Array [
|
||||
"38912",
|
||||
"38911",
|
||||
"37375",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM item_translations WHERE item_id IN (?,?,?) AND locale = \\"en\\"",
|
||||
Array [
|
||||
"38912",
|
||||
"38911",
|
||||
"37375",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM pet_types WHERE (species_id = ? AND color_id = ?) OR (species_id = ? AND color_id = ?) OR (species_id = ? AND color_id = ?)",
|
||||
Array [
|
||||
"54",
|
||||
"75",
|
||||
"54",
|
||||
"75",
|
||||
"54",
|
||||
"75",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT sa.*, rel.parent_id FROM swf_assets sa
|
||||
INNER JOIN parents_swf_assets rel ON
|
||||
rel.parent_type = \\"Item\\" AND
|
||||
rel.swf_asset_id = sa.id
|
||||
WHERE (rel.parent_id = ? AND (sa.body_id = ? OR sa.body_id = 0)) OR (rel.parent_id = ? AND (sa.body_id = ? OR sa.body_id = 0)) OR (rel.parent_id = ? AND (sa.body_id = ? OR sa.body_id = 0))",
|
||||
Array [
|
||||
"38912",
|
||||
"180",
|
||||
"38911",
|
||||
"180",
|
||||
"37375",
|
||||
"180",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM zones WHERE id IN (?,?,?)",
|
||||
Array [
|
||||
"26",
|
||||
"40",
|
||||
"3",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM zone_translations WHERE zone_id IN (?,?,?) AND locale = \\"en\\"",
|
||||
Array [
|
||||
"26",
|
||||
"40",
|
||||
"3",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe("PetAppearance", () => {
|
||||
it("loads for species and color", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
petAppearance(speciesId: "54", colorId: "75") {
|
||||
layers {
|
||||
id
|
||||
imageUrl(size: SIZE_600)
|
||||
zone {
|
||||
depth
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(queryFn.mock.calls).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM pet_types WHERE (species_id = ? AND color_id = ?)",
|
||||
Array [
|
||||
"54",
|
||||
"75",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM pet_states WHERE pet_type_id IN (?)
|
||||
ORDER BY glitched ASC, (mood_id = 1) DESC",
|
||||
Array [
|
||||
"2",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT sa.*, rel.parent_id FROM swf_assets sa
|
||||
INNER JOIN parents_swf_assets rel ON
|
||||
rel.parent_type = \\"PetState\\" AND
|
||||
rel.swf_asset_id = sa.id
|
||||
WHERE rel.parent_id IN (?)",
|
||||
Array [
|
||||
"17723",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM zones WHERE id IN (?,?,?,?,?,?)",
|
||||
Array [
|
||||
"15",
|
||||
"5",
|
||||
"37",
|
||||
"30",
|
||||
"33",
|
||||
"34",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Search", () => {
|
||||
it("loads Neopian Times items", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
itemSearch(query: "Neopian Times") {
|
||||
query
|
||||
items {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(queryFn.mock.calls).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT items.*, t.name FROM items
|
||||
INNER JOIN item_translations t ON t.item_id = items.id
|
||||
WHERE t.name LIKE ? AND t.locale=\\"en\\"
|
||||
ORDER BY t.name
|
||||
LIMIT 30",
|
||||
Array [
|
||||
"%Neopian Times%",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it("loads Neopian Times items that fit the Starry Zafara", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
itemSearchToFit(
|
||||
query: "Neopian Times"
|
||||
speciesId: "54"
|
||||
colorId: "75"
|
||||
) {
|
||||
query
|
||||
items {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(queryFn.mock.calls).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM pet_types WHERE (species_id = ? AND color_id = ?)",
|
||||
Array [
|
||||
"54",
|
||||
"75",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT DISTINCT items.*, t.name FROM items
|
||||
INNER JOIN item_translations t ON t.item_id = items.id
|
||||
INNER JOIN parents_swf_assets rel
|
||||
ON rel.parent_type = \\"Item\\" AND rel.parent_id = items.id
|
||||
INNER JOIN swf_assets ON rel.swf_asset_id = swf_assets.id
|
||||
WHERE t.name LIKE ? AND t.locale=\\"en\\" AND
|
||||
(swf_assets.body_id = ? OR swf_assets.body_id = 0)
|
||||
ORDER BY t.name
|
||||
LIMIT ? OFFSET ?",
|
||||
Array [
|
||||
"%Neopian Times%",
|
||||
"180",
|
||||
30,
|
||||
0,
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it("loads the first 10 hats that fit the Starry Zafara", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
itemSearchToFit(
|
||||
query: "hat"
|
||||
speciesId: "54"
|
||||
colorId: "75"
|
||||
offset: 0
|
||||
limit: 10
|
||||
) {
|
||||
query
|
||||
items {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(queryFn.mock.calls).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM pet_types WHERE (species_id = ? AND color_id = ?)",
|
||||
Array [
|
||||
"54",
|
||||
"75",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT DISTINCT items.*, t.name FROM items
|
||||
INNER JOIN item_translations t ON t.item_id = items.id
|
||||
INNER JOIN parents_swf_assets rel
|
||||
ON rel.parent_type = \\"Item\\" AND rel.parent_id = items.id
|
||||
INNER JOIN swf_assets ON rel.swf_asset_id = swf_assets.id
|
||||
WHERE t.name LIKE ? AND t.locale=\\"en\\" AND
|
||||
(swf_assets.body_id = ? OR swf_assets.body_id = 0)
|
||||
ORDER BY t.name
|
||||
LIMIT ? OFFSET ?",
|
||||
Array [
|
||||
"%hat%",
|
||||
"180",
|
||||
10,
|
||||
0,
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it("loads the next 10 hats that fit the Starry Zafara", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
itemSearchToFit(
|
||||
query: "hat"
|
||||
speciesId: "54"
|
||||
colorId: "75"
|
||||
offset: 10
|
||||
limit: 10
|
||||
) {
|
||||
query
|
||||
items {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(queryFn.mock.calls).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM pet_types WHERE (species_id = ? AND color_id = ?)",
|
||||
Array [
|
||||
"54",
|
||||
"75",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT DISTINCT items.*, t.name FROM items
|
||||
INNER JOIN item_translations t ON t.item_id = items.id
|
||||
INNER JOIN parents_swf_assets rel
|
||||
ON rel.parent_type = \\"Item\\" AND rel.parent_id = items.id
|
||||
INNER JOIN swf_assets ON rel.swf_asset_id = swf_assets.id
|
||||
WHERE t.name LIKE ? AND t.locale=\\"en\\" AND
|
||||
(swf_assets.body_id = ? OR swf_assets.body_id = 0)
|
||||
ORDER BY t.name
|
||||
LIMIT ? OFFSET ?",
|
||||
Array [
|
||||
"%hat%",
|
||||
"180",
|
||||
10,
|
||||
10,
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Species", () => {
|
||||
it("loads all species", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
allSpecies {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(queryFn.mock.calls).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM species",
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM species_translations
|
||||
WHERE species_id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND locale = \\"en\\"",
|
||||
Array [
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"13",
|
||||
"14",
|
||||
"15",
|
||||
"16",
|
||||
"17",
|
||||
"18",
|
||||
"19",
|
||||
"20",
|
||||
"21",
|
||||
"22",
|
||||
"23",
|
||||
"24",
|
||||
"25",
|
||||
"26",
|
||||
"27",
|
||||
"28",
|
||||
"29",
|
||||
"30",
|
||||
"31",
|
||||
"32",
|
||||
"33",
|
||||
"34",
|
||||
"35",
|
||||
"36",
|
||||
"37",
|
||||
"38",
|
||||
"39",
|
||||
"40",
|
||||
"41",
|
||||
"42",
|
||||
"43",
|
||||
"44",
|
||||
"45",
|
||||
"46",
|
||||
"47",
|
||||
"48",
|
||||
"49",
|
||||
"50",
|
||||
"51",
|
||||
"52",
|
||||
"53",
|
||||
"54",
|
||||
"55",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Color", () => {
|
||||
it("loads all colors", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
allColors {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(queryFn.mock.calls).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM colors WHERE prank = 0",
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM color_translations
|
||||
WHERE color_id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND locale = \\"en\\"",
|
||||
Array [
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"13",
|
||||
"14",
|
||||
"15",
|
||||
"16",
|
||||
"17",
|
||||
"18",
|
||||
"19",
|
||||
"20",
|
||||
"21",
|
||||
"22",
|
||||
"23",
|
||||
"24",
|
||||
"25",
|
||||
"26",
|
||||
"27",
|
||||
"28",
|
||||
"29",
|
||||
"30",
|
||||
"31",
|
||||
"32",
|
||||
"33",
|
||||
"34",
|
||||
"35",
|
||||
"36",
|
||||
"37",
|
||||
"38",
|
||||
"39",
|
||||
"40",
|
||||
"41",
|
||||
"42",
|
||||
"43",
|
||||
"44",
|
||||
"45",
|
||||
"46",
|
||||
"47",
|
||||
"48",
|
||||
"49",
|
||||
"50",
|
||||
"51",
|
||||
"52",
|
||||
"53",
|
||||
"54",
|
||||
"55",
|
||||
"56",
|
||||
"57",
|
||||
"58",
|
||||
"59",
|
||||
"60",
|
||||
"61",
|
||||
"62",
|
||||
"63",
|
||||
"64",
|
||||
"65",
|
||||
"66",
|
||||
"67",
|
||||
"68",
|
||||
"69",
|
||||
"70",
|
||||
"71",
|
||||
"72",
|
||||
"73",
|
||||
"74",
|
||||
"75",
|
||||
"76",
|
||||
"77",
|
||||
"78",
|
||||
"79",
|
||||
"80",
|
||||
"81",
|
||||
"82",
|
||||
"83",
|
||||
"84",
|
||||
"85",
|
||||
"86",
|
||||
"87",
|
||||
"88",
|
||||
"89",
|
||||
"90",
|
||||
"91",
|
||||
"92",
|
||||
"93",
|
||||
"94",
|
||||
"95",
|
||||
"96",
|
||||
"97",
|
||||
"98",
|
||||
"99",
|
||||
"100",
|
||||
"101",
|
||||
"102",
|
||||
"103",
|
||||
"104",
|
||||
"105",
|
||||
"106",
|
||||
"107",
|
||||
"108",
|
||||
"109",
|
||||
"110",
|
||||
"111",
|
||||
"112",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe("SpeciesColorPair", () => {
|
||||
it("gets them all", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
allValidSpeciesColorPairs {
|
||||
color {
|
||||
id
|
||||
}
|
||||
species {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(queryFn.mock.calls).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT species_id, color_id FROM pet_types",
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Pet", () => {
|
||||
it("looks up a pet", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
petOnNeopetsDotCom(petName: "roopal27") {
|
||||
species {
|
||||
id
|
||||
}
|
||||
color {
|
||||
id
|
||||
}
|
||||
items {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(queryFn.mock.calls).toMatchInlineSnapshot(`Array []`);
|
||||
});
|
||||
});
|
||||
|
||||
expect.extend({
|
||||
toHaveNoErrors(res) {
|
||||
if (res.errors) {
|
||||
return {
|
||||
message: () =>
|
||||
`expected no GraphQL errors, but got:\n ${res.errors}`,
|
||||
pass: false,
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
message: () => `expected GraphQL errors, but there were none`,
|
||||
pass: true,
|
||||
};
|
||||
}
|
||||
},
|
||||
});
|
145
src/server/query-tests/Color.test.js
Normal file
145
src/server/query-tests/Color.test.js
Normal file
|
@ -0,0 +1,145 @@
|
|||
const gql = require("graphql-tag");
|
||||
const { query, getDbCalls } = require("./setup.js");
|
||||
|
||||
describe("Color", () => {
|
||||
it("loads all colors", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
allColors {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(getDbCalls()).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM colors WHERE prank = 0",
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM color_translations
|
||||
WHERE color_id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND locale = \\"en\\"",
|
||||
Array [
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"13",
|
||||
"14",
|
||||
"15",
|
||||
"16",
|
||||
"17",
|
||||
"18",
|
||||
"19",
|
||||
"20",
|
||||
"21",
|
||||
"22",
|
||||
"23",
|
||||
"24",
|
||||
"25",
|
||||
"26",
|
||||
"27",
|
||||
"28",
|
||||
"29",
|
||||
"30",
|
||||
"31",
|
||||
"32",
|
||||
"33",
|
||||
"34",
|
||||
"35",
|
||||
"36",
|
||||
"37",
|
||||
"38",
|
||||
"39",
|
||||
"40",
|
||||
"41",
|
||||
"42",
|
||||
"43",
|
||||
"44",
|
||||
"45",
|
||||
"46",
|
||||
"47",
|
||||
"48",
|
||||
"49",
|
||||
"50",
|
||||
"51",
|
||||
"52",
|
||||
"53",
|
||||
"54",
|
||||
"55",
|
||||
"56",
|
||||
"57",
|
||||
"58",
|
||||
"59",
|
||||
"60",
|
||||
"61",
|
||||
"62",
|
||||
"63",
|
||||
"64",
|
||||
"65",
|
||||
"66",
|
||||
"67",
|
||||
"68",
|
||||
"69",
|
||||
"70",
|
||||
"71",
|
||||
"72",
|
||||
"73",
|
||||
"74",
|
||||
"75",
|
||||
"76",
|
||||
"77",
|
||||
"78",
|
||||
"79",
|
||||
"80",
|
||||
"81",
|
||||
"82",
|
||||
"83",
|
||||
"84",
|
||||
"85",
|
||||
"86",
|
||||
"87",
|
||||
"88",
|
||||
"89",
|
||||
"90",
|
||||
"91",
|
||||
"92",
|
||||
"93",
|
||||
"94",
|
||||
"95",
|
||||
"96",
|
||||
"97",
|
||||
"98",
|
||||
"99",
|
||||
"100",
|
||||
"101",
|
||||
"102",
|
||||
"103",
|
||||
"104",
|
||||
"105",
|
||||
"106",
|
||||
"107",
|
||||
"108",
|
||||
"109",
|
||||
"110",
|
||||
"111",
|
||||
"112",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
136
src/server/query-tests/Item.test.js
Normal file
136
src/server/query-tests/Item.test.js
Normal file
|
@ -0,0 +1,136 @@
|
|||
const gql = require("graphql-tag");
|
||||
const { query, getDbCalls } = require("./setup.js");
|
||||
|
||||
describe("Item", () => {
|
||||
it("loads metadata", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
items(ids: ["38913", "38911", "38912"]) {
|
||||
id
|
||||
name
|
||||
description
|
||||
thumbnailUrl
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(getDbCalls()).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM items WHERE id IN (?,?,?)",
|
||||
Array [
|
||||
"38913",
|
||||
"38911",
|
||||
"38912",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM item_translations WHERE item_id IN (?,?,?) AND locale = \\"en\\"",
|
||||
Array [
|
||||
"38913",
|
||||
"38911",
|
||||
"38912",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it("loads appearance data", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
items(ids: ["38912", "38911", "37375"]) {
|
||||
id
|
||||
name
|
||||
|
||||
appearanceOn(speciesId: "54", colorId: "75") {
|
||||
layers {
|
||||
id
|
||||
imageUrl(size: SIZE_600)
|
||||
zone {
|
||||
id
|
||||
depth
|
||||
label
|
||||
}
|
||||
}
|
||||
|
||||
restrictedZones {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(getDbCalls()).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM items WHERE id IN (?,?,?)",
|
||||
Array [
|
||||
"38912",
|
||||
"38911",
|
||||
"37375",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM item_translations WHERE item_id IN (?,?,?) AND locale = \\"en\\"",
|
||||
Array [
|
||||
"38912",
|
||||
"38911",
|
||||
"37375",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM pet_types WHERE (species_id = ? AND color_id = ?) OR (species_id = ? AND color_id = ?) OR (species_id = ? AND color_id = ?)",
|
||||
Array [
|
||||
"54",
|
||||
"75",
|
||||
"54",
|
||||
"75",
|
||||
"54",
|
||||
"75",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT sa.*, rel.parent_id FROM swf_assets sa
|
||||
INNER JOIN parents_swf_assets rel ON
|
||||
rel.parent_type = \\"Item\\" AND
|
||||
rel.swf_asset_id = sa.id
|
||||
WHERE (rel.parent_id = ? AND (sa.body_id = ? OR sa.body_id = 0)) OR (rel.parent_id = ? AND (sa.body_id = ? OR sa.body_id = 0)) OR (rel.parent_id = ? AND (sa.body_id = ? OR sa.body_id = 0))",
|
||||
Array [
|
||||
"38912",
|
||||
"180",
|
||||
"38911",
|
||||
"180",
|
||||
"37375",
|
||||
"180",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM zones WHERE id IN (?,?,?)",
|
||||
Array [
|
||||
"26",
|
||||
"40",
|
||||
"3",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM zone_translations WHERE zone_id IN (?,?,?) AND locale = \\"en\\"",
|
||||
Array [
|
||||
"26",
|
||||
"40",
|
||||
"3",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
194
src/server/query-tests/ItemSearch.test.js
Normal file
194
src/server/query-tests/ItemSearch.test.js
Normal file
|
@ -0,0 +1,194 @@
|
|||
const gql = require("graphql-tag");
|
||||
const { query, getDbCalls } = require("./setup.js");
|
||||
|
||||
describe("ItemSearch", () => {
|
||||
it("loads Neopian Times items", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
itemSearch(query: "Neopian Times") {
|
||||
query
|
||||
items {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(getDbCalls()).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT items.*, t.name FROM items
|
||||
INNER JOIN item_translations t ON t.item_id = items.id
|
||||
WHERE t.name LIKE ? AND t.locale=\\"en\\"
|
||||
ORDER BY t.name
|
||||
LIMIT 30",
|
||||
Array [
|
||||
"%Neopian Times%",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it("loads Neopian Times items that fit the Starry Zafara", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
itemSearchToFit(
|
||||
query: "Neopian Times"
|
||||
speciesId: "54"
|
||||
colorId: "75"
|
||||
) {
|
||||
query
|
||||
items {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(getDbCalls()).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM pet_types WHERE (species_id = ? AND color_id = ?)",
|
||||
Array [
|
||||
"54",
|
||||
"75",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT DISTINCT items.*, t.name FROM items
|
||||
INNER JOIN item_translations t ON t.item_id = items.id
|
||||
INNER JOIN parents_swf_assets rel
|
||||
ON rel.parent_type = \\"Item\\" AND rel.parent_id = items.id
|
||||
INNER JOIN swf_assets ON rel.swf_asset_id = swf_assets.id
|
||||
WHERE t.name LIKE ? AND t.locale=\\"en\\" AND
|
||||
(swf_assets.body_id = ? OR swf_assets.body_id = 0)
|
||||
ORDER BY t.name
|
||||
LIMIT ? OFFSET ?",
|
||||
Array [
|
||||
"%Neopian Times%",
|
||||
"180",
|
||||
30,
|
||||
0,
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it("loads the first 10 hats that fit the Starry Zafara", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
itemSearchToFit(
|
||||
query: "hat"
|
||||
speciesId: "54"
|
||||
colorId: "75"
|
||||
offset: 0
|
||||
limit: 10
|
||||
) {
|
||||
query
|
||||
items {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(getDbCalls()).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM pet_types WHERE (species_id = ? AND color_id = ?)",
|
||||
Array [
|
||||
"54",
|
||||
"75",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT DISTINCT items.*, t.name FROM items
|
||||
INNER JOIN item_translations t ON t.item_id = items.id
|
||||
INNER JOIN parents_swf_assets rel
|
||||
ON rel.parent_type = \\"Item\\" AND rel.parent_id = items.id
|
||||
INNER JOIN swf_assets ON rel.swf_asset_id = swf_assets.id
|
||||
WHERE t.name LIKE ? AND t.locale=\\"en\\" AND
|
||||
(swf_assets.body_id = ? OR swf_assets.body_id = 0)
|
||||
ORDER BY t.name
|
||||
LIMIT ? OFFSET ?",
|
||||
Array [
|
||||
"%hat%",
|
||||
"180",
|
||||
10,
|
||||
0,
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
|
||||
it("loads the next 10 hats that fit the Starry Zafara", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
itemSearchToFit(
|
||||
query: "hat"
|
||||
speciesId: "54"
|
||||
colorId: "75"
|
||||
offset: 10
|
||||
limit: 10
|
||||
) {
|
||||
query
|
||||
items {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(getDbCalls()).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM pet_types WHERE (species_id = ? AND color_id = ?)",
|
||||
Array [
|
||||
"54",
|
||||
"75",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT DISTINCT items.*, t.name FROM items
|
||||
INNER JOIN item_translations t ON t.item_id = items.id
|
||||
INNER JOIN parents_swf_assets rel
|
||||
ON rel.parent_type = \\"Item\\" AND rel.parent_id = items.id
|
||||
INNER JOIN swf_assets ON rel.swf_asset_id = swf_assets.id
|
||||
WHERE t.name LIKE ? AND t.locale=\\"en\\" AND
|
||||
(swf_assets.body_id = ? OR swf_assets.body_id = 0)
|
||||
ORDER BY t.name
|
||||
LIMIT ? OFFSET ?",
|
||||
Array [
|
||||
"%hat%",
|
||||
"180",
|
||||
10,
|
||||
10,
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
28
src/server/query-tests/Pet.test.js
Normal file
28
src/server/query-tests/Pet.test.js
Normal file
|
@ -0,0 +1,28 @@
|
|||
const gql = require("graphql-tag");
|
||||
const { query, getDbCalls } = require("./setup.js");
|
||||
|
||||
describe("Pet", () => {
|
||||
it("looks up a pet", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
petOnNeopetsDotCom(petName: "roopal27") {
|
||||
species {
|
||||
id
|
||||
}
|
||||
color {
|
||||
id
|
||||
}
|
||||
items {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(getDbCalls()).toMatchInlineSnapshot(`Array []`);
|
||||
});
|
||||
});
|
64
src/server/query-tests/PetAppearance.test.js
Normal file
64
src/server/query-tests/PetAppearance.test.js
Normal file
|
@ -0,0 +1,64 @@
|
|||
const gql = require("graphql-tag");
|
||||
const { query, getDbCalls } = require("./setup.js");
|
||||
|
||||
describe("PetAppearance", () => {
|
||||
it("loads for species and color", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
petAppearance(speciesId: "54", colorId: "75") {
|
||||
layers {
|
||||
id
|
||||
imageUrl(size: SIZE_600)
|
||||
zone {
|
||||
depth
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(getDbCalls()).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM pet_types WHERE (species_id = ? AND color_id = ?)",
|
||||
Array [
|
||||
"54",
|
||||
"75",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM pet_states WHERE pet_type_id IN (?)
|
||||
ORDER BY glitched ASC, (mood_id = 1) DESC",
|
||||
Array [
|
||||
"2",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT sa.*, rel.parent_id FROM swf_assets sa
|
||||
INNER JOIN parents_swf_assets rel ON
|
||||
rel.parent_type = \\"PetState\\" AND
|
||||
rel.swf_asset_id = sa.id
|
||||
WHERE rel.parent_id IN (?)",
|
||||
Array [
|
||||
"17723",
|
||||
],
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM zones WHERE id IN (?,?,?,?,?,?)",
|
||||
Array [
|
||||
"15",
|
||||
"5",
|
||||
"37",
|
||||
"30",
|
||||
"33",
|
||||
"34",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
88
src/server/query-tests/Species.test.js
Normal file
88
src/server/query-tests/Species.test.js
Normal file
|
@ -0,0 +1,88 @@
|
|||
const gql = require("graphql-tag");
|
||||
const { query, getDbCalls } = require("./setup.js");
|
||||
|
||||
describe("Species", () => {
|
||||
it("loads all species", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
allSpecies {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(getDbCalls()).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT * FROM species",
|
||||
],
|
||||
Array [
|
||||
"SELECT * FROM species_translations
|
||||
WHERE species_id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND locale = \\"en\\"",
|
||||
Array [
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12",
|
||||
"13",
|
||||
"14",
|
||||
"15",
|
||||
"16",
|
||||
"17",
|
||||
"18",
|
||||
"19",
|
||||
"20",
|
||||
"21",
|
||||
"22",
|
||||
"23",
|
||||
"24",
|
||||
"25",
|
||||
"26",
|
||||
"27",
|
||||
"28",
|
||||
"29",
|
||||
"30",
|
||||
"31",
|
||||
"32",
|
||||
"33",
|
||||
"34",
|
||||
"35",
|
||||
"36",
|
||||
"37",
|
||||
"38",
|
||||
"39",
|
||||
"40",
|
||||
"41",
|
||||
"42",
|
||||
"43",
|
||||
"44",
|
||||
"45",
|
||||
"46",
|
||||
"47",
|
||||
"48",
|
||||
"49",
|
||||
"50",
|
||||
"51",
|
||||
"52",
|
||||
"53",
|
||||
"54",
|
||||
"55",
|
||||
],
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
31
src/server/query-tests/SpeciesColorPair.test.js
Normal file
31
src/server/query-tests/SpeciesColorPair.test.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
const gql = require("graphql-tag");
|
||||
const { query, getDbCalls } = require("./setup.js");
|
||||
|
||||
describe("SpeciesColorPair", () => {
|
||||
it("gets them all", async () => {
|
||||
const res = await query({
|
||||
query: gql`
|
||||
query {
|
||||
allValidSpeciesColorPairs {
|
||||
color {
|
||||
id
|
||||
}
|
||||
species {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
});
|
||||
|
||||
expect(res).toHaveNoErrors();
|
||||
expect(res.data).toMatchSnapshot();
|
||||
expect(getDbCalls()).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
Array [
|
||||
"SELECT species_id, color_id FROM pet_types",
|
||||
],
|
||||
]
|
||||
`);
|
||||
});
|
||||
});
|
456
src/server/query-tests/__snapshots__/Color.test.js.snap
Normal file
456
src/server/query-tests/__snapshots__/Color.test.js.snap
Normal file
|
@ -0,0 +1,456 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`Color loads all colors 1`] = `
|
||||
Object {
|
||||
"allColors": Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"name": "Alien",
|
||||
},
|
||||
Object {
|
||||
"id": "2",
|
||||
"name": "Apple",
|
||||
},
|
||||
Object {
|
||||
"id": "3",
|
||||
"name": "Asparagus",
|
||||
},
|
||||
Object {
|
||||
"id": "4",
|
||||
"name": "Aubergine",
|
||||
},
|
||||
Object {
|
||||
"id": "5",
|
||||
"name": "Avocado",
|
||||
},
|
||||
Object {
|
||||
"id": "6",
|
||||
"name": "Baby",
|
||||
},
|
||||
Object {
|
||||
"id": "7",
|
||||
"name": "Biscuit",
|
||||
},
|
||||
Object {
|
||||
"id": "8",
|
||||
"name": "Blue",
|
||||
},
|
||||
Object {
|
||||
"id": "9",
|
||||
"name": "Blueberry",
|
||||
},
|
||||
Object {
|
||||
"id": "10",
|
||||
"name": "Brown",
|
||||
},
|
||||
Object {
|
||||
"id": "11",
|
||||
"name": "Camouflage",
|
||||
},
|
||||
Object {
|
||||
"id": "12",
|
||||
"name": "Carrot",
|
||||
},
|
||||
Object {
|
||||
"id": "13",
|
||||
"name": "Checkered",
|
||||
},
|
||||
Object {
|
||||
"id": "14",
|
||||
"name": "Chocolate",
|
||||
},
|
||||
Object {
|
||||
"id": "15",
|
||||
"name": "Chokato",
|
||||
},
|
||||
Object {
|
||||
"id": "16",
|
||||
"name": "Christmas",
|
||||
},
|
||||
Object {
|
||||
"id": "17",
|
||||
"name": "Clay",
|
||||
},
|
||||
Object {
|
||||
"id": "18",
|
||||
"name": "Cloud",
|
||||
},
|
||||
Object {
|
||||
"id": "19",
|
||||
"name": "Coconut",
|
||||
},
|
||||
Object {
|
||||
"id": "20",
|
||||
"name": "Custard",
|
||||
},
|
||||
Object {
|
||||
"id": "21",
|
||||
"name": "Darigan",
|
||||
},
|
||||
Object {
|
||||
"id": "22",
|
||||
"name": "Desert",
|
||||
},
|
||||
Object {
|
||||
"id": "23",
|
||||
"name": "Disco",
|
||||
},
|
||||
Object {
|
||||
"id": "24",
|
||||
"name": "Durian",
|
||||
},
|
||||
Object {
|
||||
"id": "25",
|
||||
"name": "Electric",
|
||||
},
|
||||
Object {
|
||||
"id": "26",
|
||||
"name": "Faerie",
|
||||
},
|
||||
Object {
|
||||
"id": "27",
|
||||
"name": "Fire",
|
||||
},
|
||||
Object {
|
||||
"id": "28",
|
||||
"name": "Garlic",
|
||||
},
|
||||
Object {
|
||||
"id": "29",
|
||||
"name": "Ghost",
|
||||
},
|
||||
Object {
|
||||
"id": "30",
|
||||
"name": "Glowing",
|
||||
},
|
||||
Object {
|
||||
"id": "31",
|
||||
"name": "Gold",
|
||||
},
|
||||
Object {
|
||||
"id": "32",
|
||||
"name": "Gooseberry",
|
||||
},
|
||||
Object {
|
||||
"id": "33",
|
||||
"name": "Grape",
|
||||
},
|
||||
Object {
|
||||
"id": "34",
|
||||
"name": "Green",
|
||||
},
|
||||
Object {
|
||||
"id": "35",
|
||||
"name": "Grey",
|
||||
},
|
||||
Object {
|
||||
"id": "36",
|
||||
"name": "Halloween",
|
||||
},
|
||||
Object {
|
||||
"id": "37",
|
||||
"name": "Ice",
|
||||
},
|
||||
Object {
|
||||
"id": "38",
|
||||
"name": "Invisible",
|
||||
},
|
||||
Object {
|
||||
"id": "39",
|
||||
"name": "Island",
|
||||
},
|
||||
Object {
|
||||
"id": "40",
|
||||
"name": "Jelly",
|
||||
},
|
||||
Object {
|
||||
"id": "41",
|
||||
"name": "Lemon",
|
||||
},
|
||||
Object {
|
||||
"id": "42",
|
||||
"name": "Lime",
|
||||
},
|
||||
Object {
|
||||
"id": "43",
|
||||
"name": "Mallow",
|
||||
},
|
||||
Object {
|
||||
"id": "44",
|
||||
"name": "Maraquan",
|
||||
},
|
||||
Object {
|
||||
"id": "45",
|
||||
"name": "Msp",
|
||||
},
|
||||
Object {
|
||||
"id": "46",
|
||||
"name": "Mutant",
|
||||
},
|
||||
Object {
|
||||
"id": "47",
|
||||
"name": "Orange",
|
||||
},
|
||||
Object {
|
||||
"id": "48",
|
||||
"name": "Pea",
|
||||
},
|
||||
Object {
|
||||
"id": "49",
|
||||
"name": "Peach",
|
||||
},
|
||||
Object {
|
||||
"id": "50",
|
||||
"name": "Pear",
|
||||
},
|
||||
Object {
|
||||
"id": "51",
|
||||
"name": "Pepper",
|
||||
},
|
||||
Object {
|
||||
"id": "52",
|
||||
"name": "Pineapple",
|
||||
},
|
||||
Object {
|
||||
"id": "53",
|
||||
"name": "Pink",
|
||||
},
|
||||
Object {
|
||||
"id": "54",
|
||||
"name": "Pirate",
|
||||
},
|
||||
Object {
|
||||
"id": "55",
|
||||
"name": "Plum",
|
||||
},
|
||||
Object {
|
||||
"id": "56",
|
||||
"name": "Plushie",
|
||||
},
|
||||
Object {
|
||||
"id": "57",
|
||||
"name": "Purple",
|
||||
},
|
||||
Object {
|
||||
"id": "58",
|
||||
"name": "Quigukiboy",
|
||||
},
|
||||
Object {
|
||||
"id": "59",
|
||||
"name": "Quigukigirl",
|
||||
},
|
||||
Object {
|
||||
"id": "60",
|
||||
"name": "Rainbow",
|
||||
},
|
||||
Object {
|
||||
"id": "61",
|
||||
"name": "Red",
|
||||
},
|
||||
Object {
|
||||
"id": "62",
|
||||
"name": "Robot",
|
||||
},
|
||||
Object {
|
||||
"id": "63",
|
||||
"name": "Royalboy",
|
||||
},
|
||||
Object {
|
||||
"id": "64",
|
||||
"name": "Royalgirl",
|
||||
},
|
||||
Object {
|
||||
"id": "65",
|
||||
"name": "Shadow",
|
||||
},
|
||||
Object {
|
||||
"id": "66",
|
||||
"name": "Silver",
|
||||
},
|
||||
Object {
|
||||
"id": "67",
|
||||
"name": "Sketch",
|
||||
},
|
||||
Object {
|
||||
"id": "68",
|
||||
"name": "Skunk",
|
||||
},
|
||||
Object {
|
||||
"id": "69",
|
||||
"name": "Snot",
|
||||
},
|
||||
Object {
|
||||
"id": "70",
|
||||
"name": "Snow",
|
||||
},
|
||||
Object {
|
||||
"id": "71",
|
||||
"name": "Speckled",
|
||||
},
|
||||
Object {
|
||||
"id": "72",
|
||||
"name": "Split",
|
||||
},
|
||||
Object {
|
||||
"id": "73",
|
||||
"name": "Sponge",
|
||||
},
|
||||
Object {
|
||||
"id": "74",
|
||||
"name": "Spotted",
|
||||
},
|
||||
Object {
|
||||
"id": "75",
|
||||
"name": "Starry",
|
||||
},
|
||||
Object {
|
||||
"id": "76",
|
||||
"name": "Strawberry",
|
||||
},
|
||||
Object {
|
||||
"id": "77",
|
||||
"name": "Striped",
|
||||
},
|
||||
Object {
|
||||
"id": "78",
|
||||
"name": "Thornberry",
|
||||
},
|
||||
Object {
|
||||
"id": "79",
|
||||
"name": "Tomato",
|
||||
},
|
||||
Object {
|
||||
"id": "80",
|
||||
"name": "Tyrannian",
|
||||
},
|
||||
Object {
|
||||
"id": "81",
|
||||
"name": "Usuki boy",
|
||||
},
|
||||
Object {
|
||||
"id": "82",
|
||||
"name": "Usuki girl",
|
||||
},
|
||||
Object {
|
||||
"id": "83",
|
||||
"name": "White",
|
||||
},
|
||||
Object {
|
||||
"id": "84",
|
||||
"name": "Yellow",
|
||||
},
|
||||
Object {
|
||||
"id": "85",
|
||||
"name": "Zombie",
|
||||
},
|
||||
Object {
|
||||
"id": "86",
|
||||
"name": "Onion",
|
||||
},
|
||||
Object {
|
||||
"id": "87",
|
||||
"name": "Magma",
|
||||
},
|
||||
Object {
|
||||
"id": "88",
|
||||
"name": "Relic",
|
||||
},
|
||||
Object {
|
||||
"id": "89",
|
||||
"name": "Woodland",
|
||||
},
|
||||
Object {
|
||||
"id": "90",
|
||||
"name": "Transparent",
|
||||
},
|
||||
Object {
|
||||
"id": "91",
|
||||
"name": "Maractite",
|
||||
},
|
||||
Object {
|
||||
"id": "92",
|
||||
"name": "8-bit",
|
||||
},
|
||||
Object {
|
||||
"id": "93",
|
||||
"name": "Swamp gas",
|
||||
},
|
||||
Object {
|
||||
"id": "94",
|
||||
"name": "Water",
|
||||
},
|
||||
Object {
|
||||
"id": "95",
|
||||
"name": "Wraith",
|
||||
},
|
||||
Object {
|
||||
"id": "96",
|
||||
"name": "Eventide",
|
||||
},
|
||||
Object {
|
||||
"id": "97",
|
||||
"name": "Elderlyboy",
|
||||
},
|
||||
Object {
|
||||
"id": "98",
|
||||
"name": "Elderlygirl",
|
||||
},
|
||||
Object {
|
||||
"id": "99",
|
||||
"name": "Stealthy",
|
||||
},
|
||||
Object {
|
||||
"id": "100",
|
||||
"name": "Dimensional",
|
||||
},
|
||||
Object {
|
||||
"id": "101",
|
||||
"name": "Agueena",
|
||||
},
|
||||
Object {
|
||||
"id": "102",
|
||||
"name": "Pastel",
|
||||
},
|
||||
Object {
|
||||
"id": "103",
|
||||
"name": "Ummagine",
|
||||
},
|
||||
Object {
|
||||
"id": "104",
|
||||
"name": "Polka Dot",
|
||||
},
|
||||
Object {
|
||||
"id": "105",
|
||||
"name": "Candy",
|
||||
},
|
||||
Object {
|
||||
"id": "106",
|
||||
"name": "Marble",
|
||||
},
|
||||
Object {
|
||||
"id": "107",
|
||||
"name": "Steampunk",
|
||||
},
|
||||
Object {
|
||||
"id": "108",
|
||||
"name": "Toy",
|
||||
},
|
||||
Object {
|
||||
"id": "109",
|
||||
"name": "Origami",
|
||||
},
|
||||
Object {
|
||||
"id": "110",
|
||||
"name": "Oil Paint",
|
||||
},
|
||||
Object {
|
||||
"id": "111",
|
||||
"name": "Mosaic",
|
||||
},
|
||||
Object {
|
||||
"id": "112",
|
||||
"name": "Burlap",
|
||||
},
|
||||
],
|
||||
}
|
||||
`;
|
101
src/server/query-tests/__snapshots__/Item.test.js.snap
Normal file
101
src/server/query-tests/__snapshots__/Item.test.js.snap
Normal file
|
@ -0,0 +1,101 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`Item loads appearance data 1`] = `
|
||||
Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"appearanceOn": Object {
|
||||
"layers": Array [
|
||||
Object {
|
||||
"id": "37128",
|
||||
"imageUrl": "https://impress-asset-images.s3.amazonaws.com/object/000/000/014/14856/600x600.png?v2-1587653266000",
|
||||
"zone": Object {
|
||||
"depth": 30,
|
||||
"id": "26",
|
||||
"label": "Jacket",
|
||||
},
|
||||
},
|
||||
],
|
||||
"restrictedZones": Array [
|
||||
Object {
|
||||
"id": "20",
|
||||
},
|
||||
Object {
|
||||
"id": "22",
|
||||
},
|
||||
],
|
||||
},
|
||||
"id": "38912",
|
||||
"name": "Zafara Agent Robe",
|
||||
},
|
||||
Object {
|
||||
"appearanceOn": Object {
|
||||
"layers": Array [
|
||||
Object {
|
||||
"id": "37129",
|
||||
"imageUrl": "https://impress-asset-images.s3.amazonaws.com/object/000/000/014/14857/600x600.png?v2-0",
|
||||
"zone": Object {
|
||||
"depth": 44,
|
||||
"id": "40",
|
||||
"label": "Hat",
|
||||
},
|
||||
},
|
||||
],
|
||||
"restrictedZones": Array [
|
||||
Object {
|
||||
"id": "37",
|
||||
},
|
||||
Object {
|
||||
"id": "38",
|
||||
},
|
||||
],
|
||||
},
|
||||
"id": "38911",
|
||||
"name": "Zafara Agent Hood",
|
||||
},
|
||||
Object {
|
||||
"appearanceOn": Object {
|
||||
"layers": Array [
|
||||
Object {
|
||||
"id": "30203",
|
||||
"imageUrl": "https://impress-asset-images.s3.amazonaws.com/object/000/000/006/6829/600x600.png?v2-0",
|
||||
"zone": Object {
|
||||
"depth": 3,
|
||||
"id": "3",
|
||||
"label": "Background",
|
||||
},
|
||||
},
|
||||
],
|
||||
"restrictedZones": Array [],
|
||||
},
|
||||
"id": "37375",
|
||||
"name": "Moon and Stars Background",
|
||||
},
|
||||
],
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`Item loads metadata 1`] = `
|
||||
Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"description": "Dont leave any trace that you were there with these gloves.",
|
||||
"id": "38913",
|
||||
"name": "Zafara Agent Gloves",
|
||||
"thumbnailUrl": "http://images.neopets.com/items/clo_zafara_agent_gloves.gif",
|
||||
},
|
||||
Object {
|
||||
"description": "Hide your face and hair so no one can recognise you.",
|
||||
"id": "38911",
|
||||
"name": "Zafara Agent Hood",
|
||||
"thumbnailUrl": "http://images.neopets.com/items/clo_zafara_agent_hood.gif",
|
||||
},
|
||||
Object {
|
||||
"description": "This robe is great for being stealthy.",
|
||||
"id": "38912",
|
||||
"name": "Zafara Agent Robe",
|
||||
"thumbnailUrl": "http://images.neopets.com/items/clo_zafara_agent_robe.gif",
|
||||
},
|
||||
],
|
||||
}
|
||||
`;
|
197
src/server/query-tests/__snapshots__/ItemSearch.test.js.snap
Normal file
197
src/server/query-tests/__snapshots__/ItemSearch.test.js.snap
Normal file
|
@ -0,0 +1,197 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`ItemSearch loads Neopian Times items 1`] = `
|
||||
Object {
|
||||
"itemSearch": Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"id": "40431",
|
||||
"name": "Neopian Times Background",
|
||||
},
|
||||
Object {
|
||||
"id": "59391",
|
||||
"name": "Neopian Times Eyrie Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "59392",
|
||||
"name": "Neopian Times Eyrie Shirt and Vest",
|
||||
},
|
||||
Object {
|
||||
"id": "59394",
|
||||
"name": "Neopian Times Eyrie Shoes",
|
||||
},
|
||||
Object {
|
||||
"id": "59393",
|
||||
"name": "Neopian Times Eyrie Trousers",
|
||||
},
|
||||
Object {
|
||||
"id": "59390",
|
||||
"name": "Neopian Times Eyries Paper",
|
||||
},
|
||||
Object {
|
||||
"id": "51098",
|
||||
"name": "Neopian Times Writing Quill",
|
||||
},
|
||||
Object {
|
||||
"id": "61101",
|
||||
"name": "Neopian Times Zafara Handkerchief",
|
||||
},
|
||||
Object {
|
||||
"id": "61100",
|
||||
"name": "Neopian Times Zafara Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "61102",
|
||||
"name": "Neopian Times Zafara Shirt and Vest",
|
||||
},
|
||||
Object {
|
||||
"id": "61104",
|
||||
"name": "Neopian Times Zafara Shoes",
|
||||
},
|
||||
Object {
|
||||
"id": "61103",
|
||||
"name": "Neopian Times Zafara Trousers",
|
||||
},
|
||||
],
|
||||
"query": "Neopian Times",
|
||||
},
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`ItemSearch loads Neopian Times items that fit the Starry Zafara 1`] = `
|
||||
Object {
|
||||
"itemSearchToFit": Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"id": "40431",
|
||||
"name": "Neopian Times Background",
|
||||
},
|
||||
Object {
|
||||
"id": "51098",
|
||||
"name": "Neopian Times Writing Quill",
|
||||
},
|
||||
Object {
|
||||
"id": "61101",
|
||||
"name": "Neopian Times Zafara Handkerchief",
|
||||
},
|
||||
Object {
|
||||
"id": "61100",
|
||||
"name": "Neopian Times Zafara Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "61102",
|
||||
"name": "Neopian Times Zafara Shirt and Vest",
|
||||
},
|
||||
Object {
|
||||
"id": "61104",
|
||||
"name": "Neopian Times Zafara Shoes",
|
||||
},
|
||||
Object {
|
||||
"id": "61103",
|
||||
"name": "Neopian Times Zafara Trousers",
|
||||
},
|
||||
],
|
||||
"query": "Neopian Times",
|
||||
},
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`ItemSearch loads the first 10 hats that fit the Starry Zafara 1`] = `
|
||||
Object {
|
||||
"itemSearchToFit": Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"id": "74967",
|
||||
"name": "17th Birthday Party Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "49026",
|
||||
"name": "Abominable Snowman Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "67242",
|
||||
"name": "Accessories Shop Wig and Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "64177",
|
||||
"name": "Acorn Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "69995",
|
||||
"name": "Adventure in Pastel Hat and Wig",
|
||||
},
|
||||
Object {
|
||||
"id": "62375",
|
||||
"name": "Altador Cup Trophy Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "56654",
|
||||
"name": "Altador Team Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "62322",
|
||||
"name": "Altador Team Jester Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "58733",
|
||||
"name": "Apple Bobbing Bart Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "80401",
|
||||
"name": "Aurricks Finest Hat",
|
||||
},
|
||||
],
|
||||
"query": "hat",
|
||||
},
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`ItemSearch loads the next 10 hats that fit the Starry Zafara 1`] = `
|
||||
Object {
|
||||
"itemSearchToFit": Object {
|
||||
"items": Array [
|
||||
Object {
|
||||
"id": "50168",
|
||||
"name": "Babaa Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "78311",
|
||||
"name": "Backwards Hat and Wig",
|
||||
},
|
||||
Object {
|
||||
"id": "66653",
|
||||
"name": "Bagel Hat Wig",
|
||||
},
|
||||
Object {
|
||||
"id": "51366",
|
||||
"name": "Balloon Sculpture Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "66236",
|
||||
"name": "Banker Hat and Wig",
|
||||
},
|
||||
Object {
|
||||
"id": "52733",
|
||||
"name": "Battlefield Legends Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "57617",
|
||||
"name": "Big Black Lace Pirate Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "44451",
|
||||
"name": "Big Fuzzy Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "58318",
|
||||
"name": "Bigsby Shadingtons Hat",
|
||||
},
|
||||
Object {
|
||||
"id": "39883",
|
||||
"name": "Bird Nest Hat",
|
||||
},
|
||||
],
|
||||
"query": "hat",
|
||||
},
|
||||
}
|
||||
`;
|
40
src/server/query-tests/__snapshots__/Pet.test.js.snap
Normal file
40
src/server/query-tests/__snapshots__/Pet.test.js.snap
Normal file
|
@ -0,0 +1,40 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`Pet looks up a pet 1`] = `
|
||||
Object {
|
||||
"petOnNeopetsDotCom": Object {
|
||||
"color": Object {
|
||||
"id": "75",
|
||||
},
|
||||
"items": Array [
|
||||
Object {
|
||||
"id": "37229",
|
||||
},
|
||||
Object {
|
||||
"id": "37375",
|
||||
},
|
||||
Object {
|
||||
"id": "38911",
|
||||
},
|
||||
Object {
|
||||
"id": "38912",
|
||||
},
|
||||
Object {
|
||||
"id": "38913",
|
||||
},
|
||||
Object {
|
||||
"id": "43014",
|
||||
},
|
||||
Object {
|
||||
"id": "43397",
|
||||
},
|
||||
Object {
|
||||
"id": "48313",
|
||||
},
|
||||
],
|
||||
"species": Object {
|
||||
"id": "54",
|
||||
},
|
||||
},
|
||||
}
|
||||
`;
|
|
@ -0,0 +1,52 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`PetAppearance loads for species and color 1`] = `
|
||||
Object {
|
||||
"petAppearance": Object {
|
||||
"layers": Array [
|
||||
Object {
|
||||
"id": "5995",
|
||||
"imageUrl": "https://impress-asset-images.s3.amazonaws.com/biology/000/000/007/7941/600x600.png?v2-0",
|
||||
"zone": Object {
|
||||
"depth": 18,
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "5996",
|
||||
"imageUrl": "https://impress-asset-images.s3.amazonaws.com/biology/000/000/007/7942/600x600.png?v2-0",
|
||||
"zone": Object {
|
||||
"depth": 7,
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "6000",
|
||||
"imageUrl": "https://impress-asset-images.s3.amazonaws.com/biology/000/000/007/7946/600x600.png?v2-0",
|
||||
"zone": Object {
|
||||
"depth": 40,
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "16467",
|
||||
"imageUrl": "https://impress-asset-images.s3.amazonaws.com/biology/000/000/024/24008/600x600.png?v2-0",
|
||||
"zone": Object {
|
||||
"depth": 34,
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "19784",
|
||||
"imageUrl": "https://impress-asset-images.s3.amazonaws.com/biology/000/000/028/28892/600x600.png?v2-1313418652000",
|
||||
"zone": Object {
|
||||
"depth": 37,
|
||||
},
|
||||
},
|
||||
Object {
|
||||
"id": "178150",
|
||||
"imageUrl": "https://impress-asset-images.s3.amazonaws.com/biology/000/000/036/36887/600x600.png?v2-1354240708000",
|
||||
"zone": Object {
|
||||
"depth": 38,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
`;
|
228
src/server/query-tests/__snapshots__/Species.test.js.snap
Normal file
228
src/server/query-tests/__snapshots__/Species.test.js.snap
Normal file
|
@ -0,0 +1,228 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`Species loads all species 1`] = `
|
||||
Object {
|
||||
"allSpecies": Array [
|
||||
Object {
|
||||
"id": "1",
|
||||
"name": "Acara",
|
||||
},
|
||||
Object {
|
||||
"id": "2",
|
||||
"name": "Aisha",
|
||||
},
|
||||
Object {
|
||||
"id": "3",
|
||||
"name": "Blumaroo",
|
||||
},
|
||||
Object {
|
||||
"id": "4",
|
||||
"name": "Bori",
|
||||
},
|
||||
Object {
|
||||
"id": "5",
|
||||
"name": "Bruce",
|
||||
},
|
||||
Object {
|
||||
"id": "6",
|
||||
"name": "Buzz",
|
||||
},
|
||||
Object {
|
||||
"id": "7",
|
||||
"name": "Chia",
|
||||
},
|
||||
Object {
|
||||
"id": "8",
|
||||
"name": "Chomby",
|
||||
},
|
||||
Object {
|
||||
"id": "9",
|
||||
"name": "Cybunny",
|
||||
},
|
||||
Object {
|
||||
"id": "10",
|
||||
"name": "Draik",
|
||||
},
|
||||
Object {
|
||||
"id": "11",
|
||||
"name": "Elephante",
|
||||
},
|
||||
Object {
|
||||
"id": "12",
|
||||
"name": "Eyrie",
|
||||
},
|
||||
Object {
|
||||
"id": "13",
|
||||
"name": "Flotsam",
|
||||
},
|
||||
Object {
|
||||
"id": "14",
|
||||
"name": "Gelert",
|
||||
},
|
||||
Object {
|
||||
"id": "15",
|
||||
"name": "Gnorbu",
|
||||
},
|
||||
Object {
|
||||
"id": "16",
|
||||
"name": "Grarrl",
|
||||
},
|
||||
Object {
|
||||
"id": "17",
|
||||
"name": "Grundo",
|
||||
},
|
||||
Object {
|
||||
"id": "18",
|
||||
"name": "Hissi",
|
||||
},
|
||||
Object {
|
||||
"id": "19",
|
||||
"name": "Ixi",
|
||||
},
|
||||
Object {
|
||||
"id": "20",
|
||||
"name": "Jetsam",
|
||||
},
|
||||
Object {
|
||||
"id": "21",
|
||||
"name": "Jubjub",
|
||||
},
|
||||
Object {
|
||||
"id": "22",
|
||||
"name": "Kacheek",
|
||||
},
|
||||
Object {
|
||||
"id": "23",
|
||||
"name": "Kau",
|
||||
},
|
||||
Object {
|
||||
"id": "24",
|
||||
"name": "Kiko",
|
||||
},
|
||||
Object {
|
||||
"id": "25",
|
||||
"name": "Koi",
|
||||
},
|
||||
Object {
|
||||
"id": "26",
|
||||
"name": "Korbat",
|
||||
},
|
||||
Object {
|
||||
"id": "27",
|
||||
"name": "Kougra",
|
||||
},
|
||||
Object {
|
||||
"id": "28",
|
||||
"name": "Krawk",
|
||||
},
|
||||
Object {
|
||||
"id": "29",
|
||||
"name": "Kyrii",
|
||||
},
|
||||
Object {
|
||||
"id": "30",
|
||||
"name": "Lenny",
|
||||
},
|
||||
Object {
|
||||
"id": "31",
|
||||
"name": "Lupe",
|
||||
},
|
||||
Object {
|
||||
"id": "32",
|
||||
"name": "Lutari",
|
||||
},
|
||||
Object {
|
||||
"id": "33",
|
||||
"name": "Meerca",
|
||||
},
|
||||
Object {
|
||||
"id": "34",
|
||||
"name": "Moehog",
|
||||
},
|
||||
Object {
|
||||
"id": "35",
|
||||
"name": "Mynci",
|
||||
},
|
||||
Object {
|
||||
"id": "36",
|
||||
"name": "Nimmo",
|
||||
},
|
||||
Object {
|
||||
"id": "37",
|
||||
"name": "Ogrin",
|
||||
},
|
||||
Object {
|
||||
"id": "38",
|
||||
"name": "Peophin",
|
||||
},
|
||||
Object {
|
||||
"id": "39",
|
||||
"name": "Poogle",
|
||||
},
|
||||
Object {
|
||||
"id": "40",
|
||||
"name": "Pteri",
|
||||
},
|
||||
Object {
|
||||
"id": "41",
|
||||
"name": "Quiggle",
|
||||
},
|
||||
Object {
|
||||
"id": "42",
|
||||
"name": "Ruki",
|
||||
},
|
||||
Object {
|
||||
"id": "43",
|
||||
"name": "Scorchio",
|
||||
},
|
||||
Object {
|
||||
"id": "44",
|
||||
"name": "Shoyru",
|
||||
},
|
||||
Object {
|
||||
"id": "45",
|
||||
"name": "Skeith",
|
||||
},
|
||||
Object {
|
||||
"id": "46",
|
||||
"name": "Techo",
|
||||
},
|
||||
Object {
|
||||
"id": "47",
|
||||
"name": "Tonu",
|
||||
},
|
||||
Object {
|
||||
"id": "48",
|
||||
"name": "Tuskaninny",
|
||||
},
|
||||
Object {
|
||||
"id": "49",
|
||||
"name": "Uni",
|
||||
},
|
||||
Object {
|
||||
"id": "50",
|
||||
"name": "Usul",
|
||||
},
|
||||
Object {
|
||||
"id": "51",
|
||||
"name": "Wocky",
|
||||
},
|
||||
Object {
|
||||
"id": "52",
|
||||
"name": "Xweetok",
|
||||
},
|
||||
Object {
|
||||
"id": "53",
|
||||
"name": "Yurble",
|
||||
},
|
||||
Object {
|
||||
"id": "54",
|
||||
"name": "Zafara",
|
||||
},
|
||||
Object {
|
||||
"id": "55",
|
||||
"name": "Vandagyre",
|
||||
},
|
||||
],
|
||||
}
|
||||
`;
|
File diff suppressed because it is too large
Load diff
48
src/server/query-tests/setup.js
Normal file
48
src/server/query-tests/setup.js
Normal file
|
@ -0,0 +1,48 @@
|
|||
const { ApolloServer } = require("apollo-server");
|
||||
const { createTestClient } = require("apollo-server-testing");
|
||||
|
||||
const connectToDb = require("../db");
|
||||
const actualConnectToDb = jest.requireActual("../db");
|
||||
const { config } = require("../index");
|
||||
|
||||
const { query } = createTestClient(new ApolloServer(config));
|
||||
|
||||
// Spy on db.execute, so we can snapshot the queries we run. This can help us
|
||||
// keep an eye on perf - watch for tests with way too many queries!
|
||||
jest.mock("../db");
|
||||
let dbExecuteFn;
|
||||
let db;
|
||||
beforeAll(() => {
|
||||
connectToDb.mockImplementation(async (...args) => {
|
||||
db = await actualConnectToDb(...args);
|
||||
dbExecuteFn = jest.spyOn(db, "execute");
|
||||
return db;
|
||||
});
|
||||
});
|
||||
afterEach(() => {
|
||||
dbExecuteFn.mockClear();
|
||||
});
|
||||
afterAll(() => {
|
||||
db.end();
|
||||
});
|
||||
const getDbCalls = () => dbExecuteFn.mock.calls;
|
||||
|
||||
// Add a new `expect(res).toHaveNoErrors()` to call after GraphQL calls!
|
||||
expect.extend({
|
||||
toHaveNoErrors(res) {
|
||||
if (res.errors) {
|
||||
return {
|
||||
message: () =>
|
||||
`expected no GraphQL errors, but got:\n ${res.errors}`,
|
||||
pass: false,
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
message: () => `expected GraphQL errors, but there were none`,
|
||||
pass: true,
|
||||
};
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
module.exports = { query, getDbCalls };
|
Loading…
Reference in a new issue