Skip to content

Commit b805108

Browse files
CopilotGrantBirki
andcommitted
Add test case to reproduce issue #70 - file duplication and extension misreporting
Co-authored-by: GrantBirki <[email protected]>
1 parent b2c4039 commit b805108

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
import {jsonValidator} from '../src/functions/json-validator'
2+
import {yamlValidator} from '../src/functions/yaml-validator'
3+
import {Exclude} from '../src/functions/exclude'
4+
5+
const originalEnv = process.env
6+
7+
beforeEach(() => {
8+
jest.clearAllMocks()
9+
process.env = {...originalEnv}
10+
11+
// Set default environment variables
12+
process.env.INPUT_BASE_DIR = '.'
13+
process.env.INPUT_JSON_EXTENSION = '.json'
14+
process.env.INPUT_JSON_EXCLUDE_REGEX = ''
15+
process.env.INPUT_JSON_SCHEMA = ''
16+
process.env.INPUT_YAML_EXTENSION = '.yaml'
17+
process.env.INPUT_YAML_EXTENSION_SHORT = '.yml'
18+
process.env.INPUT_YAML_EXCLUDE_REGEX = ''
19+
process.env.INPUT_YAML_SCHEMA = ''
20+
process.env.INPUT_YAML_AS_JSON = 'false'
21+
process.env.INPUT_USE_DOT_MATCH = 'true'
22+
process.env.INPUT_ALLOW_MULTIPLE_DOCUMENTS = 'false'
23+
process.env.INPUT_USE_GITIGNORE = 'false'
24+
process.env.INPUT_EXCLUDE_FILE = ''
25+
process.env.INPUT_EXCLUDE_FILE_REQUIRED = 'false'
26+
process.env.INPUT_GIT_IGNORE_PATH = '.gitignore'
27+
process.env.INPUT_AJV_STRICT_MODE = 'true'
28+
process.env.INPUT_JSON_SCHEMA_VERSION = 'draft-07'
29+
process.env.INPUT_USE_AJV_FORMATS = 'false'
30+
})
31+
32+
afterEach(() => {
33+
process.env = originalEnv
34+
})
35+
36+
describe('file duplication and extension issue reproduction', () => {
37+
test('reproduces the issue from bug report #70', async () => {
38+
// Setup the scenario from the issue using test fixtures
39+
process.env.INPUT_FILES = '__tests__/fixtures/json/valid/json1.json\n__tests__/fixtures/yaml/valid/yaml1.yaml'
40+
41+
const excludeMock = new Exclude()
42+
43+
// Run both validators like in main.js
44+
const jsonResults = await jsonValidator(excludeMock)
45+
const yamlResults = await yamlValidator(excludeMock)
46+
47+
// Expectations based on the correct behavior
48+
// JSON validator should process only the .json file
49+
expect(jsonResults.passed).toBe(1)
50+
expect(jsonResults.failed).toBe(0)
51+
expect(jsonResults.skipped).toBe(0)
52+
53+
// YAML validator should process only the .yaml file
54+
expect(yamlResults.passed).toBe(1)
55+
expect(yamlResults.failed).toBe(0)
56+
expect(yamlResults.skipped).toBe(0)
57+
58+
console.log('JSON Results:', jsonResults)
59+
console.log('YAML Results:', yamlResults)
60+
})
61+
})

0 commit comments

Comments
 (0)