Skip to content

Commit

Permalink
test: add tests for CredentialIcon
Browse files Browse the repository at this point in the history
  • Loading branch information
tomi committed Nov 28, 2023
1 parent 137e903 commit a6bd97f
Show file tree
Hide file tree
Showing 2 changed files with 1,037 additions and 0 deletions.
73 changes: 73 additions & 0 deletions packages/editor-ui/src/components/__tests__/CredentialIcon.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import { createComponentRenderer } from '@/__tests__/render';
import CredentialIcon from '@/components/CredentialIcon.vue';
import { STORES } from '@/constants';
import { createTestingPinia } from '@pinia/testing';
import * as testNodeTypes from './testData/nodeTypesTestData';
import merge from 'lodash-es/merge';
import { groupNodeTypesByNameAndType } from '@/utils/nodeTypes/nodeTypeTransforms';

const defaultState = {
[STORES.CREDENTIALS]: {},
[STORES.NODE_TYPES]: {},
};

const renderComponent = createComponentRenderer(CredentialIcon, {
pinia: createTestingPinia({
initialState: defaultState,
}),
global: {
stubs: ['n8n-tooltip'],
},
});

describe('CredentialIcon', () => {
const findIcon = (baseElement: Element) => baseElement.querySelector('img');

it('shows correct icon for credential type that is for the latest node type version', () => {
const { baseElement } = renderComponent({
pinia: createTestingPinia({
initialState: merge(defaultState, {
[STORES.CREDENTIALS]: {},
[STORES.NODE_TYPES]: {
nodeTypes: groupNodeTypesByNameAndType([
testNodeTypes.twitterV1,
testNodeTypes.twitterV2,
]),
},
}),
}),
props: {
credentialTypeName: 'twitterOAuth2Api',
},
});

expect(findIcon(baseElement)).toHaveAttribute(
'src',
'/icons/n8n-nodes-base/dist/nodes/Twitter/x.svg',
);
});

it('shows correct icon for credential type that is for an older node type version', () => {
const { baseElement } = renderComponent({
pinia: createTestingPinia({
initialState: merge(defaultState, {
[STORES.CREDENTIALS]: {},
[STORES.NODE_TYPES]: {
nodeTypes: groupNodeTypesByNameAndType([
testNodeTypes.twitterV1,
testNodeTypes.twitterV2,
]),
},
}),
}),
props: {
credentialTypeName: 'twitterOAuth1Api',
},
});

expect(findIcon(baseElement)).toHaveAttribute(
'src',
'/icons/n8n-nodes-base/dist/nodes/Twitter/x.svg',
);
});
});
Loading

0 comments on commit a6bd97f

Please sign in to comment.