Ethan Lane
4b9c8a8ea5
# Description Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. - Added a `Gallery` option to the return parameters, which will be an array of image links for every image of that post - The JSON will always show it - The human readable will only show it if there is more than 1 image #161 ## Type of change Please delete options that are not relevant. - [x] New feature (non-breaking change which adds functionality) - [x] This change requires a documentation update # How Has This Been Tested? Please describe the tests that you ran to verify the changes. Provide instructions so we can reproduce. Please also list any relevant details to your test configuration. - Added new unit tests for these changes # Checklist - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that provide my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [x] Any dependent changes have been merged and published in downstream modules Reviewed-on: #242 Reviewed-by: VylpesTester <tester@vylpes.com> Co-authored-by: Ethan Lane <ethan@vylpes.com> Co-committed-by: Ethan Lane <ethan@vylpes.com>
144 lines
No EOL
5.2 KiB
TypeScript
144 lines
No EOL
5.2 KiB
TypeScript
import ICliOptions from "../../src/contracts/ICliOptions";
|
|
import IReturnResult from "../../src/contracts/IReturnResult";
|
|
import OutputHelper from "../../src/helpers/outputHelper";
|
|
|
|
describe("GenerateOutput", () => {
|
|
test("EXPECT standout output to be returned", () => {
|
|
// Arrange
|
|
const response = {
|
|
IsSuccess: true,
|
|
Query: {
|
|
subreddit: "rabbits",
|
|
sortBy: "hot",
|
|
limit: 100,
|
|
},
|
|
Result: {
|
|
Archived: false,
|
|
Author: 'author',
|
|
Downs: 0,
|
|
Hidden: false,
|
|
Permalink: "/r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/",
|
|
Subreddit: "Rabbits",
|
|
SubredditSubscribers: 654751,
|
|
Title: "This is my Ms Bear!",
|
|
Ups: 17,
|
|
Url: "https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d",
|
|
Gallery: ["https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d"],
|
|
},
|
|
} as IReturnResult;
|
|
|
|
const options = {} as ICliOptions;
|
|
|
|
// Act
|
|
const result = OutputHelper.GenerateOutput(response, options);
|
|
|
|
// Assert
|
|
expect(result).toMatchSnapshot();
|
|
});
|
|
|
|
test("GIVEN options.json is true, EXPECT output to be returned as JSON", () => {
|
|
// Arrange
|
|
const response = {
|
|
IsSuccess: true,
|
|
Query: {
|
|
subreddit: "rabbits",
|
|
sortBy: "hot",
|
|
limit: 100,
|
|
},
|
|
Result: {
|
|
Archived: false,
|
|
Author: 'author',
|
|
Downs: 0,
|
|
Hidden: false,
|
|
Permalink: "/r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/",
|
|
Subreddit: "Rabbits",
|
|
SubredditSubscribers: 654751,
|
|
Title: "This is my Ms Bear!",
|
|
Ups: 17,
|
|
Url: "https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d",
|
|
Gallery: ["https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d"],
|
|
},
|
|
} as IReturnResult;
|
|
|
|
const options = {
|
|
json: true,
|
|
} as ICliOptions;
|
|
|
|
// Act
|
|
const result = OutputHelper.GenerateOutput(response, options);
|
|
|
|
// Assert
|
|
expect(result).toMatchSnapshot();
|
|
});
|
|
|
|
test("GIVEN options.queryMetadata is supplied, EXPECT query metadata to be added", () => {
|
|
// Arrange
|
|
const response = {
|
|
IsSuccess: true,
|
|
Query: {
|
|
subreddit: "rabbits",
|
|
sortBy: "hot",
|
|
limit: 100,
|
|
},
|
|
Result: {
|
|
Archived: false,
|
|
Author: 'author',
|
|
Downs: 0,
|
|
Hidden: false,
|
|
Permalink: "/r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/",
|
|
Subreddit: "Rabbits",
|
|
SubredditSubscribers: 654751,
|
|
Title: "This is my Ms Bear!",
|
|
Ups: 17,
|
|
Url: "https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d",
|
|
Gallery: ["https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d"],
|
|
},
|
|
} as IReturnResult;
|
|
|
|
const options = {
|
|
queryMetadata: true,
|
|
} as ICliOptions;
|
|
|
|
// Act
|
|
const result = OutputHelper.GenerateOutput(response, options);
|
|
|
|
// Assert
|
|
expect(result).toMatchSnapshot();
|
|
});
|
|
|
|
test("GIVEN the Gallery input has more than 1 item, EXPECT Gallery line to be added", () => {
|
|
// Arrange
|
|
const response = {
|
|
IsSuccess: true,
|
|
Query: {
|
|
subreddit: "rabbits",
|
|
sortBy: "hot",
|
|
limit: 100,
|
|
},
|
|
Result: {
|
|
Archived: false,
|
|
Author: 'author',
|
|
Downs: 0,
|
|
Hidden: false,
|
|
Permalink: "/r/Rabbits/comments/1dj8pbt/this_is_my_ms_bear/",
|
|
Subreddit: "Rabbits",
|
|
SubredditSubscribers: 654751,
|
|
Title: "This is my Ms Bear!",
|
|
Ups: 17,
|
|
Url: "https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d",
|
|
Gallery: [
|
|
"https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d",
|
|
"https://preview.redd.it/d5yno653zf7d1.jpg?width=640&crop=smart&auto=webp&s=5064d1caec3c12ac2855eb57ff131d0b313d5e9d"
|
|
],
|
|
},
|
|
} as IReturnResult;
|
|
|
|
const options = {} as ICliOptions;
|
|
|
|
// Act
|
|
const result = OutputHelper.GenerateOutput(response, options);
|
|
|
|
// Assert
|
|
expect(result).toMatchSnapshot();
|
|
});
|
|
}); |