Skip to content

Commit

Permalink
Address PR feedback + update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kpollich committed May 12, 2022
1 parent 71317da commit 2e2469e
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ describe('StepDefinePackagePolicy', () => {

let testRenderer: TestRenderer;
let renderResult: ReturnType<typeof testRenderer.render>;
const render = () =>
const render = ({ isUpdate } = { isUpdate: false }) =>
(renderResult = testRenderer.render(
<StepDefinePackagePolicy
agentPolicy={agentPolicy}
Expand All @@ -101,6 +101,7 @@ describe('StepDefinePackagePolicy', () => {
updatePackagePolicy={mockUpdatePackagePolicy}
validationResults={validationResults}
submitAttempted={false}
isUpdate={isUpdate}
/>
));

Expand Down Expand Up @@ -205,4 +206,23 @@ describe('StepDefinePackagePolicy', () => {
expect(renderResult.getByDisplayValue('apache-11')).toBeInTheDocument();
});
});

describe('update', () => {
describe('when package vars are introduced in a new package version', () => {
it('should display new package vars', () => {
render({ isUpdate: true });

waitFor(async () => {
expect(renderResult.getByDisplayValue('showUserVarVal')).toBeInTheDocument();
expect(renderResult.getByText('Required var')).toBeInTheDocument();

await act(async () => {
fireEvent.click(renderResult.getByText('Advanced options').closest('button')!);
});

expect(renderResult.getByText('Advanced var')).toBeInTheDocument();
});
});
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,28 @@ export const StepDefinePackagePolicy: React.FunctionComponent<{

// Update package policy's package and agent policy info
useEffect(() => {
if (isUpdate || isLoadingPackagePolicies) {
if (isLoadingPackagePolicies) {
return;
}

if (isUpdate) {
// If we're upgrading, we need to make sure we catch an addition of package-level
// vars when they were previously no package-level vars defined
if (!packagePolicy.vars && packageInfo.vars) {
updatePackagePolicy(
packageToPackagePolicy(
packageInfo,
agentPolicy?.id || '',
packagePolicy.output_id,
packagePolicy.namespace,
packagePolicy.name,
packagePolicy.description,
integrationToEnable
)
);
}
}

const pkg = packagePolicy.package;
const currentPkgKey = pkg ? pkgKeyFromPackageInfo(pkg) : '';
const pkgKey = pkgKeyFromPackageInfo(packageInfo);
Expand Down Expand Up @@ -208,18 +227,9 @@ export const StepDefinePackagePolicy: React.FunctionComponent<{

{/* Required vars */}
{requiredVars.map((varDef) => {
const { name: varName, type: varType, default: defaultValue } = varDef;

// Set up the `vars` object and assign the default value if it doesn't exist
if (!packagePolicy.vars) {
packagePolicy.vars = {};
}

if (!packagePolicy.vars[varName]) {
packagePolicy.vars[varName] = { value: defaultValue, type: varType };
}

const value = packagePolicy.vars?.[varName]?.value;
const { name: varName, type: varType } = varDef;
if (!packagePolicy.vars || !packagePolicy.vars[varName]) return null;
const value = packagePolicy.vars[varName].value;

return (
<EuiFlexItem key={varName}>
Expand Down

0 comments on commit 2e2469e

Please sign in to comment.